我在不同的目录和子目录中有一组.iso文件:
<folder1>
app1.iso
app2.iso
app3.iso
<subfolder1>
app1a.iso
app2a.iso
<subfolder2>
app2b.iso
app3b.iso
<folder2>
app4.iso
app5.iso
<subfolder5>
app20.iso
使用批处理文件并预先安装了7-zip(配置了PATH环境变量),我希望能够将每个.iso存档到它自己的.7z存档文件中。我不想将当前文件夹中的所有.iso存档到一个存档中。
我尝试与FORFILES一起创建我自己的7-zip命令:
FORFILES /P . /M *.iso /S /C "cmd /c 7z a -t7z @path.7z -mx9 -mmt >> C:\test\7z-log.txt"
然而,这样做的是:
app1.iso.7z - contains: app1.iso, app2.iso, app3.iso
app2.iso.7z - contains: app1.iso.7z, app1.iso, app2.iso, app3.iso
app3.iso.7z - contains: app1.iso.7z, app2.iso.7z, app1.iso, app2.iso, app3.iso
app1a.iso.7z - contains: app1a.iso, app2a.iso
app2a.iso.7z - contains: app1a.iso.7z, app1a.iso, app2a.iso
...
我想要的是(每个都在相关的文件夹或子文件夹中):
app1.iso.7z - contains: app1.iso
app2.iso.7z - contains: app2.iso
app3.iso.7z - contains: app3.iso
app1a.iso.7z - contains: app1a.iso
...
任何人都可以帮我处理批处理命令吗?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f "delims=" %%a IN (
'dir /s/b /a-d "%sourcedir%\*.iso" '
) DO (
ECHO(7z a -t7z "%%~fa.7z" "%%~fa" -mx9 -mmt
)
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
为了测试目的,所需的7z命令仅为ECHO
。 在您确认命令正确后,将ECHO(7z
更改为7z
以实际归档文件。
请注意,缺少重定向到日志。这样做是为了允许将建议的操作显示在屏幕上。