Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Windows批处理文件删除不包含特定字符的文件?_Windows_Batch File_File Io - Fatal编程技术网

如何使用Windows批处理文件删除不包含特定字符的文件?

如何使用Windows批处理文件删除不包含特定字符的文件?,windows,batch-file,file-io,Windows,Batch File,File Io,如何删除不以模式.PDF.*.PDF结尾的文件 AA00A6E2.PDF AA00A6E3.PDF AA00A6E3.PDF_01.pdf AA00A6E3.PDF_02.pdf AA00A6E3.PDF_03.pdf 我一直在尝试以下语法的各种变体: FOR %%F IN (%varFolderSource%\*.*) DO IF NOT "%%~xF" == "*_*" DEL /F /S "%%F" 但我似乎无法破解它 %varFolderSource% is a folder pat

如何删除不以模式
.PDF.*.PDF
结尾的文件

AA00A6E2.PDF
AA00A6E3.PDF
AA00A6E3.PDF_01.pdf
AA00A6E3.PDF_02.pdf
AA00A6E3.PDF_03.pdf
我一直在尝试以下语法的各种变体:

FOR %%F IN (%varFolderSource%\*.*) DO IF NOT "%%~xF" == "*_*" DEL /F /S "%%F"
但我似乎无法破解它

%varFolderSource% is a folder path: C:\Temp etc.
我正在Windows 7批处理文件中运行此程序

For /f "delims=" %A in ('dir /b /a-d ^|findstr /i /v /e /r "\.PDF_[a-z0-9]*\.pdf"') do echo %A
类型


在批处理文件中,在命令提示下使用
%%a
而不是
%a

您遇到了什么错误等,您是否可以从FOR循环打印出来,而不是尝试删除以查看匹配的内容?请提供更多信息。+1正则表达式应该使用
*
,如果
[a-z0-9]*
,而
/i
是不区分大小写的开关,我认为字符类仍然需要包含
a-Z
,然后它仍然会排除特殊字符。/c确实适用于大写文件名部分。刚刚测试过。我实际上是从所有合法的文件名字符开始的。直到我看到它们被命名为01,02,…,0n。我本想把a-z去掉。对于/f“delims=“%%a in('dir/b/a-d^ findstr/I/v/e/r”\.PDF\[a-z0-9]*\.PDF')来说,DEL%%a工作得很好。谢谢你的帮助。
for /?
findstr /?