[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求教:批处理 使用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

回复 1# blueskyforme
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     pushd "%%i"
  5.     for /f "delims=" %%j in ('dir /b /ad') do (
  6.         "C:\Program Files\WinRAR\rar.exe" a "%%j.7z" "%%j"
  7.         type nul >"%%j.txt"
  8.     )
  9.     popd
  10. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 blueskyforme 于 2021-8-26 22:03 编辑

回复 2# Batcher


    感谢大神。有个问题请教一下。
    如果我想把这个压缩好的文件,移动到最开始路径下,需要怎么做?我写了这么一行: move "%%j.7z" "%%i"
    结果只是修改了名字,文件并没有移动过去。。。

非常感谢你。

TOP

回复 3# blueskyforme
  1. move "%%j.7z" ..
复制代码
BAT脚本里面..表示上级目录
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    好的,感谢

TOP

返回列表