windows bat批处理解压文件

又遇到了问题,同学给的文件夹里面都是压缩包,并且有365个文件夹,因此要对其进行批处理解压,并且还是.gz文件。解决了,一步一步来吧:
1、首先将winrar导入到系统路径,找到winrar的安装路径,然后将里面的WinRAR.exe复制粘贴到C:\Windows\System32下面,这样就可以在cmd中直接调用winrar啦。
2、文件夹结构如下:

windows bat批处理解压文件_第1张图片

windows bat批处理解压文件_第2张图片

于是要对每个进行处理,写bat批处理文件:

@echo off
for /f  %%i in ('"dir /ad/b/on *.*"') do (  
echo  %%i
winrar x -o+ %%i/*.gz %%i
)
pause

 讲解(按行):
(1)@为不输出当前行,echo off是取消显示命令
(2)for循环中,脚本语言使用%%variable做变量,要加两个百分号,变量名大小写区分,/f的话就是遍历整体里面的内容,若不加则无法遍历file,后面的dir是当前路径,加参数(只列出当前用到的),也就是只按顺序输出文件夹名:

/A          显示具有指定属性的文件。
  attributes   D  目录                R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            -  表示“否”的前缀
 /B          使用空格式(没有标题信息或摘要)。
 /O          用分类顺序列出文件。
  sortorder    N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  颠倒顺序的前缀

(3)输出一下文件夹名
(4)winrar进行解压,解压到当前文件夹且删除源文件若存在同名文件则进行覆盖,这里解释一下参数:

x   解压文件
-o+ 覆盖同名文件

 

 

你可能感兴趣的:(windows)