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

[文件操作] [已解决]批处理检索一级子目录和一级子文件,名称中含有中文,就删除

[已解决]检索某个目录的根目录下,一级子目录和一级子文件,名称中含有中文,就删除对应的子目录和子文件。
比如:c:\360用户文件,c:\360极速浏览器X下载,c:\360安全浏览器下载,c:\Windows_10_64位_中文专业版.iso,类似的子目录及其所有子目录全删除,类似的子文件也删除。。
比如:C:\Users,C:\Program Files,C:\Program Files (x86),C:\Windows,这种英文的就不修改。
1

评分人数

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

本帖最后由 aloha20200628 于 2024-9-29 18:34 编辑

回复 1# ygqiang

以下代码存为 test.bat 放在根目录下运行
当前代码用于实际删除前预览删除结果是否正确,若仅删除第9行前缀 REM 关键字,和删除整个第10行则变为实际删除
  1. @echo off &setlocal
  2. for /f "delims=" %%F in ('dir /b/a-d') do set "nF=%%~nF"&call :testHZ 1 "%%F"
  3. for /f "delims=" %%D in ('dir /b/ad') do set "nF=%%~nD"&call :testHZ 2 "%%D"
  4. endlocal&pause&exit/b
  5. :testHZ
  6. if "%nF%"=="" (exit/b)
  7. set "c=%nF:~,1%"
  8. if "%c%" gtr "Z" (
  9. REM if %1 equ 1 (del /q "%~2") else (rd /s/q "%~2")
  10. if %1 equ 1 (echo,del /q "%~2") else (echo,rd /s/q "%~2")
  11. exit/b
  12. )
  13. set "nF=%nF:~1%" &goto :testHZ
  14. exit/b
复制代码
1

评分人数

TOP

回复  ygqiang

以下代码存为 test.bat 放在根目录下运行
当前代码用于实际删除前预览删除结果是否正确 ...
aloha20200628 发表于 2024-9-29 18:07



    测试成功,感谢。

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /ad^|findstr /r /c:"[^- '!-Z]"') do (
  3.     echo,rd /s /q /f "%%i"
  4. )
  5. for /f "delims=" %%i in ('dir /b /a-d^|findstr /r /c:"[^- '!-Z]"') do (
  6.     echo,del /f /q "%%i"
  7. )
  8. pause
复制代码

TOP

qixiaobin0715 发表于 2024-9-30 08:59



前面加上cd /d d:\
这个代码有问题,各种非中文的子目录和子文件,都会显示。

TOP

返回列表