Board logo

标题: [文本处理] 批处理删除文件和文件夹如何显示 处理了多少条结果? [打印本页]

作者: lovekix    时间: 6 天前 10:46     标题: 批处理删除文件和文件夹如何显示 处理了多少条结果?

比如说  一个bat  里面包含
  1. del /s/q "C:\Windows\apppatch\shellFeatureInbox.sdb"
  2. del /s/q "C:\Windows\hh.exe"
  3. del /s/q "C:\Windows\mib.bin"
  4. del /s/q "C:\Windows\system.ini"
  5. rd /S /Q "C:\Windows\UUS\x86"
  6. rd /S /Q "C:\Windows\schemas\TSWorkSpace"
  7. rd /S /Q "C:\Windows\schemas\VpnProfile"
复制代码
想显示出来的结果 为

删除成功了XXX条   失败了XX条
或者
删除成功XXX个文件夹  失败XX个文件夹
作者: aloha20200628    时间: 6 天前 12:38

本帖最后由 aloha20200628 于 2024-6-30 12:48 编辑

回复 1# lovekix
  1. @echo off &setlocal
  2. for %%F in (
  3. "C:\Windows\apppatch\shellFeatureInbox.sdb"
  4. "C:\Windows\hh.exe"
  5. "C:\Windows\mib.bin"
  6. "C:\Windows\system.ini"
  7. ) do (del /s/q "%%~F" 2>nul)&(if exist "%%~F" (set/a m+=1) else set/a n+=1)
  8. echo,删除文件》成功 %n% 个,失败 %m% 个
  9. for %%D in (
  10. "C:\Windows\UUS\x86"
  11. "C:\Windows\schemas\TSWorkSpace"
  12. "C:\Windows\schemas\VpnProfile"
  13. ) do (rd /s/q "%%~D" 2>nul)&(if exist "%%~D" (set/a i+=1) else set/a k+=1)
  14. echo,删除目录》成功 %k% 个,失败 %i% 个
  15. endlocal&pause&exit/b
复制代码
建议先用一组测试文件或目录测试代码,通过之后再用于实况。删除批量文件或目录须慎重...
作者: aloha20200628    时间: 6 天前 13:44

回复 1# lovekix
二楼代码已订正...
作者: 77七    时间: 6 天前 16:10

  1. del /s /q "C:\Windows\hh.exe"
复制代码

如果删除文件不涉及windows子目录下的hh.exe,无需/s /q 开关。
如果真实意图正如代码所示,可尝试下列代码。

删除文件并计数
  1. @echo off
  2. for %%a in (
  3. "C:\Windows\apppatch\shellFeatureInbox.sdb"
  4. "C:\Windows\hh.exe"
  5. "C:\Windows\mib.bin"
  6. "C:\Windows\system.ini"
  7. ) do (
  8. for /f "delims=" %%i in ('2^>nul dir /b /s /a-d "%%~a"') do (
  9. del "%%i" 1>nul 2>nul
  10. if not exist "%%i" (
  11. set /a n+=1
  12. ) else (
  13. set /a m+=1
  14. echo 删除失败[%%i]
  15. )
  16. )
  17. )
  18. echo 删除成功 %n% 删除失败 %m%
  19. pause
复制代码





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