Batch file 如何在bat文件中以特定扩展名结尾的目录中搜索文件
我正在目录中搜索以.jpeg结尾的文件,但也有一些文件以.jepg.e.jpeg结尾。我只需要以.jpeg结尾的文件。我想在批处理脚本中执行此操作。只需执行以下操作:Batch file 如何在bat文件中以特定扩展名结尾的目录中搜索文件,batch-file,Batch File,我正在目录中搜索以.jpeg结尾的文件,但也有一些文件以.jepg.e.jpeg结尾。我只需要以.jpeg结尾的文件。我想在批处理脚本中执行此操作。只需执行以下操作: dir /s /b /a-d *.jpeg | findstr /vi "jpeg." dir/s/b/a-d*.jpeg将搜索所有.jpg文件。其中findstr/vi“jpeg。”将排除任何包含不区分大小写的jpeg的文件。 如果您想对文件执行某些操作,还可以在for循环中使用它。例如,如果要从批处理文件中复制它们: for
dir /s /b /a-d *.jpeg | findstr /vi "jpeg."
dir/s/b/a-d*.jpeg
将搜索所有.jpg
文件。其中findstr/vi“jpeg。”
将排除任何包含不区分大小写的jpeg的文件。
如果您想对文件执行某些操作,还可以在for
循环中使用它。例如,如果要从批处理文件中复制它们:
for /f %%i in ('dir /s /b /a-d *.jpeg ^| findstr /vi "jpeg."') do copy "%%i" "d:\destination"
直接从cmdline执行的操作:
for /f %i in ('dir /s /b /a-d *.jpeg ^| findstr /vi "jpeg."') do copy "%i" "d:\destination"
+1用于一般方法,但您可能应该使用
findstr/liv.jpeg。“
因此点被解释为文字。您可能希望在jpeg之前和之后搜索点。@dbenham,谢谢+1。我这样做的原因是因为唯一以点结尾的jpeg字符串不是实际的扩展名,我在考虑如果文件是imagenamejpeg.jpeg
,但你是正确的,OP非常具体,他的例子是.jpeg.
谢谢。嗨,谢谢你的解决方案,但我仍然得到以其他格式结尾的文件。我有两种格式,例如“Abc.jpeg”和“Abc.jpeg.I.jpeg”,我只需要“Abc.jpeg”,但通过这个解决方案,我也得到了“Abc.jpeg.I.jpeg”。@GerhardBarnard,这是工作,谢谢。我可以为它添加多个检查,如“Abcd.jpeg”,“Abcd.jpeg.I.jpeg”“Abcd.ghk.I.jpeg”这三个格式中只有“Abcd.jpeg”已选择是。因为字符串搜索任何以.jpeg
结尾的内容,但不搜索coitanjpeg。
实际扩展名永远不会有结束点。