Board logo

标题: [其他] 批处理怎样把压缩失败的文件写入到文本文档里? [打印本页]

作者: bluesky123    时间: 2023-8-24 06:02     标题: 批处理怎样把压缩失败的文件写入到文本文档里?

  1. @echo off
  2. chcp 65001
  3. cd /d "%~dp0"
  4. set rar="C:\Program Files\WinRAR\WinRAR.exe"
  5. for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip') do (
  6. for /f "skip=15 delims=" %%a in ('type "%~f0"') do (
  7. if not defined _"%%~fi" (
  8. %rar% x -y "%%~fi" -hp%%a && del "%%~fi" && set _"%%~fi"=1
  9. )
  10. )
  11. )
  12. echo finish
  13. pause & exit
复制代码
有时候碰到系统无法识别的字符有的文件或文件夹会压缩失败,帮我把压缩失败的文件写入到一个文本文档里
作者: 77七    时间: 2023-8-24 14:31

回复 2# bluesky123


   http://bbs.bathome.net/redirect.php?goto=findpost&ptid=65837&pid=272835
作者: bluesky123    时间: 2023-8-25 15:56

回复 2# 77七 我发的这个代码是解压的,搞错了,就是我的操作系统用的英文版的Win2012,然后系统语言也切换成了中文版,但是中文解压密码没办法在批处理中运行,我将bat文档改成了utf-8才解决,不过这个也就是凑合。这个问题好不好解决
作者: 77七    时间: 2023-8-25 19:27

回复 3# bluesky123


   参考此贴末楼,将65001 改为936 试试。https://www.zhihu.com/question/56566162
作者: czjt1234    时间: 2023-8-26 13:21

压缩失败的,会不会生成对应的 .rar 文件,或者一个 0 字节的文件?
可以根据这个来判断不
作者: Batcher    时间: 2023-8-26 14:32

回复 1# bluesky123
  1. @echo off
  2. chcp 65001
  3. cd /d "%~dp0"
  4. set rar="C:\Program Files\WinRAR\WinRAR.exe"
  5. for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip') do (
  6.     for /f "skip=20 delims=" %%a in ('type "%~f0"') do (
  7.         if not defined _"%%~fi" (
  8.             %rar% x -y "%%~fi" -hp%%a
  9.             if not errorlevel 1 (
  10.                 del "%%~fi"
  11.                 set _"%%~fi"=1
  12.             ) else (
  13.                 >>"1.log" echo 失败的文件 %%i
  14.             )
  15.         )
  16.     )
  17. )
  18. echo finish
  19. pause
复制代码





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