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

[文件操作] [已解决]批处理如何实现全盘搜索多个指定rar压缩文件并解压?

本帖最后由 ygqiang 于 2016-8-17 15:54 编辑

[已解决]批处理,搜索特定目录下的rar压缩文件,解压缩。如果修改为:搜索所有盘符?
  1. @echo off
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
  4. :begin
  5. rem 下边开始写批处代码了
  6. echo 保存文件执行路径
  7. pushd "%~dp0"
  8. set "fdir=0-0朗科06"
  9. set files=00-00robocopy.rar 备份exe.rar 显示桌面.rar curl.rar devcon.rar dowld.rar grep.rar robocopy.rar sed.rar SETRES.rar VBScript.rar
  10. if exist "C:\Program Files\WinRAR\WinRAR.exe" set "rar=C:\Program Files\WinRAR\WinRAR.exe"
  11. if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" set "rar=C:\Program Files (x86)\WinRAR\WinRAR.exe"
  12. echo %rar%
  13. for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  14. fsutil fsinfo volumeinfo %%a:\ | findstr "错误" >nul && echo %%a不可读取 || echo %%a可读取 && (
  15.         for /f "delims=" %%b in ('dir /ad/b/s %%a:\^|findstr "\\%fdir%$"') do (
  16.             cd /d "%%b"
  17.             for /f "delims=" %%c in ('dir /a-d/b/s %files%') do (
  18.                 echo;%%c
  19.                 "%rar%" x -y -ibck "%%c" "%%~dpc"
  20.             )
  21.         )
  22. )
  23. )
  24. cls
  25. echo 恢复文件执行路径
  26. popd
  27. cls
  28. ping 127.0.0.1 -n 5 >nul 2>nul
  29. exit
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

第22行不是已经实现这个功能了吗
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    26-30这段代码,如何修改呢?

TOP

回复 3# ygqiang


修改的目的是什么?
代码报错了?代码的功能跟你的预期不一致?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    1楼的代码功能:如果某个盘符下有“0-0朗科06“目录,才会搜索这个目录下的rar文件并解压缩。
需要的功能:搜索所有盘符下的rar文件并解压缩。

TOP

26~32改成:
  1. pushd "%%a:\"
  2. for /f "delims=" %%c in ('dir /a-d/b/s %files%') do (
  3.     echo;%%c
  4.     "%rar%" x -y -ibck "%%c" "%%~dpc"
  5. )
  6. popd
复制代码

TOP

回复 6# GNU


    多谢。测试通过。。搞定了。

TOP

返回列表