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 创建批处理以保留一个文件,并在所有文件具有相同扩展名且位于同一文件夹中时删除其余文件_Batch File - Fatal编程技术网

Batch file 创建批处理以保留一个文件,并在所有文件具有相同扩展名且位于同一文件夹中时删除其余文件

Batch file 创建批处理以保留一个文件,并在所有文件具有相同扩展名且位于同一文件夹中时删除其余文件,batch-file,Batch File,我需要创建一个批处理命令,该命令将保留来自所有相同扩展名的一个文件,并删除其余扩展名 例如,我在桌面上有一个名为照片的文件夹。它包含所有.png格式的图片。但是,在这些文件中,我想保留birds.png并删除其余的图片。我怎样才能做到这一点 非常简单。使用for/r循环 for /r "Photograph" %%a in (*) do ( if %%~na NEQ [file to keep e.g. bird] del "%%a" ) 从桌面上运行此操作,它将删除文件夹“photo”中的所

我需要创建一个
批处理命令
,该命令将保留来自所有相同扩展名的一个文件,并删除其余扩展名


例如
,我在桌面上有一个名为
照片的文件夹
。它包含所有
.png
格式的图片。但是,在这些文件中,我想保留
birds.png
并删除其余的图片。我怎样才能做到这一点

非常简单。使用
for/r
循环

for /r "Photograph" %%a in (*) do (
if %%~na NEQ [file to keep e.g. bird] del "%%a"
)
从桌面上运行此操作,它将删除文件夹“photo”中的所有文件,但指定位置的文件名除外

我自己试过,效果很好。如果你还需要什么,告诉我

你的Mona

候补 这应该行得通

@echo关闭
@echo off

if NOT EXIST %2 (
echo "Usage: allBut.bat <pattern> <filename>
goto:end
)

for %%f in (%1) do (
IF NOT %%f==%2 (
    echo Deleting %%f because it is not %2
    del %%f
)
)
如果不存在%2( echo“用法:allBut.bat 后藤:结束 ) 对于(%1)中的%%f,请执行以下操作( 如果不是%%f==%2( 回显删除%%f,因为它不是%2 del%%f ) )

e、 g.allBut*.png bird.png

不要在需要的文件夹之外的任何其他文件夹中运行它。:)


谢谢你的评论Mona。我还有一个问题。如果我想把这个bat文件放在桌面以外的地方怎么办?我应该在上面写着“照片”的地方添加完整的文件夹位置吗?是的,基本上用
“photo”
替换为
“C:\pathtofile”“
,如果您觉得这很有用,请不要忘记更正此答案。很抱歉问了这么多问题。我尝试了你们的代码,也尝试了一个添加完整路径到文件夹,它似乎并没有删除任何文件。我添加了这段代码并保存为test.bat,然后双击它。但是什么也没发生。候补者应该这样做。请输入你到底在做什么
@echo off

if NOT EXIST %2 (
echo "Usage: allBut.bat <pattern> <filename>
goto:end
)

for %%f in (%1) do (
IF NOT %%f==%2 (
    echo Deleting %%f because it is not %2
    del %%f
)
)
@echo off
attrib +h bird.png
del *.png
attrib -h bird.png