Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 如何在bat文件中以特定扩展名结尾的目录中搜索文件_Batch File - Fatal编程技术网

Batch file 如何在bat文件中以特定扩展名结尾的目录中搜索文件

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

我正在目录中搜索以.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 /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
结尾的内容,但不搜索coitan
jpeg。
实际扩展名永远不会有结束点。