标题: [文件操作] 求教:批处理 使用winrar,遍历并压缩当前路径下各目录中的子目录 [打印本页]
作者: blueskyforme 时间: 2021-8-25 11:58 标题: 求教:批处理 使用winrar,遍历并压缩当前路径下各目录中的子目录
本帖最后由 blueskyforme 于 2021-8-25 13:43 编辑
具体的情况是:
一个路径下,假如有5个目录,每个目录里都有一个子文件夹。那么我需要一个程序进行判断,如果当前路径的各目录下存在一个子目录,就把这个子目录压缩成一个.7z的压缩包(密码123456),并且创建一个和子目录路径相同的.txt文件,命名“ABC.txt”.
假设winrar的安装路径为 c:\program files\winrar\rar.exe
请问这个bat程序该如何写?谢谢大神指教!
举例:
压缩前:
<目录1>/<子目录1>
<目录2>/<子目录2>
<目录3>/<子目录3>
<目录4>/<子目录4>
<目录5>/<子目录5>
压缩处理后:
<目录1>/子目录1.7z & ABC.txt
<目录2>/子目录2.7z & ABC.txt
<目录3>/子目录3.7z & ABC.txt
<目录4>/子目录4.7z & ABC.txt
<目录5>/子目录5.7z & ABC.txt
作者: Batcher 时间: 2021-8-26 09:47
回复 1# blueskyforme - @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i"
- for /f "delims=" %%j in ('dir /b /ad') do (
- "C:\Program Files\WinRAR\rar.exe" a "%%j.7z" "%%j"
- type nul >"%%j.txt"
- )
- popd
- )
复制代码
作者: blueskyforme 时间: 2021-8-26 21:03
本帖最后由 blueskyforme 于 2021-8-26 22:03 编辑
回复 2# Batcher
感谢大神。有个问题请教一下。
如果我想把这个压缩好的文件,移动到最开始路径下,需要怎么做?我写了这么一行: move "%%j.7z" "%%i"
结果只是修改了名字,文件并没有移动过去。。。
非常感谢你。
作者: Batcher 时间: 2021-8-27 00:12
回复 3# blueskyforme 复制代码
BAT脚本里面..表示上级目录
作者: blueskyforme 时间: 2021-8-28 07:16
回复 4# Batcher
好的,感谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |