Windows 重命名文件递归

Windows 重命名文件递归

我在这里有点卡住了,我创建了一个易于使用的文件来压缩具有特殊名称的文件夹。因此,假设我们正在寻找名为“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

相关内容