我在这里有点卡住了,我创建了一个易于使用的文件来压缩具有特殊名称的文件夹。因此,假设我们正在寻找名为“tozip”的文件夹,但压缩文件的名称应为子文件夹名称 + 文件夹名称。例如,C:/test/somefolder/123456/tozip/* 中的所有文件都应添加到文件“123456_tozip.7z”中
我现在有的是:
for /R /d /r %%i in (tozip*) do (
7za a -tzip "%%i.7z" "%%i" -mx3
)
但这不会将 n-1 文件夹的名称添加到文件名中。我看到,我可以通过 %%~nxi 或完整路径提取文件名,但不幸的是,这不是我需要的信息。对此有什么想法吗?
答案1
您已经非常接近正确答案,甚至有了正确的想法,但您需要更进一步。找到目录后,tozip
您可以将该路径放入另一个FOR
命令中以获取该文件夹的父文件夹tozip
。
这是根据您的示例的代码。
@echo off
for /D /R C:\test\ %%G in (tozip*) do (
FOR %%H IN ("%%G\..") DO echo %%~nxH
)
pause