用于删除具有特定长度名称的文件的批处理脚本
Batch script to delete files with specific length names
我已经尝试 del "C:\path\?????.txt"
删除名称长度为 5 个字符的文件(abcde.txt 等)。
它会删除名称为 5 个字符的文件,但也会删除名称少于 5 个字符的文件(abc.txt、abcd.txt 等)
任何帮助将不胜感激。
有几种方法可以做到这一点,这是其中之一:
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b "%userprofile%\Desktop\New\*.txt"') do (
set "str=%%~i"
if "!str:~5!" == "%%~xi" del "%%~i" /Q /S
)
以下使用 where.exe
的完整 batch-file 将仅匹配并随后尝试删除名称恰好包含五个字符和扩展名 .txt
的文件。 (你只需要用一个?
来代表每个字符).
@SetLocal
@Set "PATHEXT="
@For /F "EOL=? Delims=" %%G In ('""%__AppDir__%where.exe" "%UserProfile%\Desktop\New":"?????.txt" 2> NUL"') Do @Del /A/F "%%G"
@EndLocal
我已经尝试 del "C:\path\?????.txt"
删除名称长度为 5 个字符的文件(abcde.txt 等)。
它会删除名称为 5 个字符的文件,但也会删除名称少于 5 个字符的文件(abc.txt、abcd.txt 等)
任何帮助将不胜感激。
有几种方法可以做到这一点,这是其中之一:
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b "%userprofile%\Desktop\New\*.txt"') do (
set "str=%%~i"
if "!str:~5!" == "%%~xi" del "%%~i" /Q /S
)
以下使用 where.exe
的完整 batch-file 将仅匹配并随后尝试删除名称恰好包含五个字符和扩展名 .txt
的文件。 (你只需要用一个?
来代表每个字符).
@SetLocal
@Set "PATHEXT="
@For /F "EOL=? Delims=" %%G In ('""%__AppDir__%where.exe" "%UserProfile%\Desktop\New":"?????.txt" 2> NUL"') Do @Del /A/F "%%G"
@EndLocal