删除子目录中除给定扩展名以外的所有文件(在Windows批处理中)
我一直在寻找一个快速的、可能是for循环的代码(尽可能小),它将删除指定目录和所有子目录中的所有文件(而不是文件夹),任何类型的非.apk的文件(在本例中) 这是我降落的地方,但它什么也没做。(顺便说一句,我已经将%current%设置到脚本中其他位置的特定文件夹) 这个命令在控制台中工作,这正是我所希望的。我只需要右键单击打开一个新的命令窗口在根目录中直接我想开始我的清洗。但无论出于什么原因,我都无法在批处理脚本中使用它删除子目录中除给定扩展名以外的所有文件(在Windows批处理中),windows,batch-file,for-loop,cmd,delete-file,Windows,Batch File,For Loop,Cmd,Delete File,我一直在寻找一个快速的、可能是for循环的代码(尽可能小),它将删除指定目录和所有子目录中的所有文件(而不是文件夹),任何类型的非.apk的文件(在本例中) 这是我降落的地方,但它什么也没做。(顺便说一句,我已经将%current%设置到脚本中其他位置的特定文件夹) 这个命令在控制台中工作,这正是我所希望的。我只需要右键单击打开一个新的命令窗口在根目录中直接我想开始我的清洗。但无论出于什么原因,我都无法在批处理脚本中使用它 For /r %f in (*) do if not %~xf==.ap
For /r %f in (*) do if not %~xf==.apk del /S "%f"
有人知道为什么第一个for循环让我失败了吗?
for/R
如果在集合中指定的不仅仅是文件名模式(即括号中的部分),可能会导致意外的结果。因此,您需要将路径部分直接放在/R
后面。(如果未指定任何内容,则默认为当前目录。)因此,以下操作应有效:
对于/R“%current%\Data\TEMP”%%f in(*)do(如果不是“%%~xf”==”.apk“del”%%~f)
对于(*)do中的/R“%current%\Data\TEMP”%%f(如果不是“%%~xf”==”.apk“del”%%~f”)
就是这样!现在,我不想拿着它就跑。我想知道我哪里出错了,为什么。for/R
commands。明白了。我将进一步深入了解参数的格式。我把第一句话作为答案,但我不知道怎么回答。看不到它的选择。
For /r %f in (*) do if not %~xf==.apk del /S "%f"