繁体   English   中英

使用FOR或FORFILES批处理命令分别归档特定文件

[英]Using FOR or FORFILES batch command to individually archive specific files

我在不同的目录和子目录中有一组.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
...

谁能帮我批处理命令?

@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即可实际存档文件。

请注意,缺少日志重定向。 这样做是为了使建议的操作显示在屏幕上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM