标题: [文件操作] [已解决]批处理检索一级子目录和一级子文件,名称中含有中文,就删除 [打印本页]
作者: ygqiang 时间: 2024-9-29 16:24 标题: [已解决]批处理检索一级子目录和一级子文件,名称中含有中文,就删除
[已解决]检索某个目录的根目录下,一级子目录和一级子文件,名称中含有中文,就删除对应的子目录和子文件。
比如:c:\360用户文件,c:\360极速浏览器X下载,c:\360安全浏览器下载,c:\Windows_10_64位_中文专业版.iso,类似的子目录及其所有子目录全删除,类似的子文件也删除。。
比如:C:\Users,C:\Program Files,C:\Program Files (x86),C:\Windows,这种英文的就不修改。
作者: aloha20200628 时间: 2024-9-29 18:07
本帖最后由 aloha20200628 于 2024-9-29 18:34 编辑
回复 1# ygqiang
以下代码存为 test.bat 放在根目录下运行
当前代码用于实际删除前预览删除结果是否正确,若仅删除第9行前缀 REM 关键字,和删除整个第10行则变为实际删除版- @echo off &setlocal
- for /f "delims=" %%F in ('dir /b/a-d') do set "nF=%%~nF"&call :testHZ 1 "%%F"
- for /f "delims=" %%D in ('dir /b/ad') do set "nF=%%~nD"&call :testHZ 2 "%%D"
- endlocal&pause&exit/b
- :testHZ
- if "%nF%"=="" (exit/b)
- set "c=%nF:~,1%"
- if "%c%" gtr "Z" (
- REM if %1 equ 1 (del /q "%~2") else (rd /s/q "%~2")
- if %1 equ 1 (echo,del /q "%~2") else (echo,rd /s/q "%~2")
- exit/b
- )
- set "nF=%nF:~1%" &goto :testHZ
- exit/b
复制代码
作者: ygqiang 时间: 2024-9-29 20:09
回复 ygqiang
以下代码存为 test.bat 放在根目录下运行
当前代码用于实际删除前预览删除结果是否正确 ...
aloha20200628 发表于 2024-9-29 18:07
测试成功,感谢。
作者: qixiaobin0715 时间: 2024-9-30 08:59
- @echo off
- for /f "delims=" %%i in ('dir /b /ad^|findstr /r /c:"[^- '!-Z]"') do (
- echo,rd /s /q /f "%%i"
- )
- for /f "delims=" %%i in ('dir /b /a-d^|findstr /r /c:"[^- '!-Z]"') do (
- echo,del /f /q "%%i"
- )
- pause
复制代码
作者: ygqiang 时间: 2024-9-30 18:59
qixiaobin0715 发表于 2024-9-30 08:59
前面加上cd /d d:\
这个代码有问题,各种非中文的子目录和子文件,都会显示。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |