问题描述
我尝试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