如何解决批处理脚本以删除具有特定长度名称的文件
我尝试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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。