Board logo

标题: [文件操作] 用winrar命令行批量删除压缩文件内指定文件 [打印本页]

作者: shaokui123    时间: 2023-7-3 10:17     标题: 用winrar命令行批量删除压缩文件内指定文件

想利用批处理批量处理文件,用winrar的命令行方式
有一些dat文件,实质是压缩文件格式,但是必须dat后缀才能被程序调用
把dat后缀改成rar,打开后里面有个子文件夹go,主目录和这个子文件夹里有很多txt的文件
想批量删除go文件夹中其中名字为1.txt

网络搜索找到一个只能单独操作的
cd C:\Program Files\WinRAR
Rar.exe D D:\chuli\chuli.rar *.txt

弊端就是只能逐个把要处理的文件挨个改后缀名后放入指定位置文件夹中,并且还不支持处理指定文件,只能处理一种类型的文件,导致所有相同后缀的都删除了


求高手按需求给个代码,谢谢了
作者: Batcher    时间: 2023-7-3 10:25

回复 1# shaokui123


    请找一个dat文件上传到网盘,我试试。
作者: shaokui123    时间: 2023-7-3 10:33

D: sk>若编d C: Program Files WinRAR
”诺编d”不是内部或外部命令,也不是可运行的程序或批处理文件
D: sk>Rar.exe D D: chuli chuli.rar *.txt

并且实际运行出现这个
不知为啥图片上传始终说超过大小限制,所以用ocr抓的文字
作者: Batcher    时间: 2023-7-3 10:37

回复 3# shaokui123


请参考Q-04把bat文件保存为ANSI编码可以解决乱码问题:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: shaokui123    时间: 2023-7-3 10:39

回复 2# Batcher


    管理好,上传1个文件,请您查收
https://www.123pan.com/s/rBk9-ZRRWv.html

1.dat\xl\drawings\drawing1.xml
需求只删除这个文件,别的同后缀的不动

设想是在d盘建立一个文件比如处理,然后把要处理的那些dat文件都复制进去,点击批处理,自动全部改后缀或者不改,进行处理,批量删除它们内部这个指定文件,恢复后缀。
作者: Batcher    时间: 2023-7-3 10:41

回复 3# shaokui123


Q: 怎样把CMD窗口里的结果复制出来?
A: 右键单击CMD窗口的标题栏->"属性"->"选项"->勾选"快速编辑模式"->然后在CMD窗口用鼠标左键选中想要拷贝的内容->在选中的内容上单击鼠标右键->粘贴到文本文件中即可
作者: shaokui123    时间: 2023-7-3 11:03

还发现
Rar.exe D D:\chuli\chuli.rar *.txt
如果改成1.txt,那么运行后只对根目录产生作用,子文件夹里这个文件没影响不删除
但是改成*.txt,那么所有文件夹下全部删除
作者: shaokui123    时间: 2023-7-3 11:05

又试了下,把要删除文件前面加上路径就可以删除指定文件夹下的指定文件了。
哈哈,实践性很强的技术,虽然小白不懂原理。
作者: Batcher    时间: 2023-7-3 11:16

回复 5# shaokui123


test.bat和你待处理的dat文件放在同一个文件夹下
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.dat') do (
  4.     "C:\Program Files\WinRAR\WinRAR.exe" d -ibck -inul "%%i" "*\drawing1.xml"
  5. )
复制代码

作者: buyiyang    时间: 2023-7-3 11:18

回复 5# shaokui123


    你这个是表格文件xlsx吧,是要删除图像文件关联?
  1. @echo off
  2. cd "%~dp0"
  3. set "winrar=C:\Program Files\WinRAR\winrar.exe"
  4. for /f "delims=" %%i in ('dir /b /a-d *.dat') do "%winrar%" d "%%i" xl\drawings\drawing1.xml
  5. pause
复制代码

作者: shaokui123    时间: 2023-7-3 11:55

回复 9# Batcher


    感谢
作者: shaokui123    时间: 2023-7-3 11:56

回复 10# buyiyang


    是的,感谢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2