为什么我的命令不能在.bat文件中工作?

时间:2014-03-20 18:45:17

标签: batch-file file-io cmd duplicate-removal

所以我的目标是将某个文件类型移动到一个文件夹。然后在该文件夹中找到所有重复项并删除它们。

我想出了这个:

for /r C:\users\ %%f in (*.jpg) do @copy "%%f" C:\test\ /y 
c:\tools\sfk sel -dir c:\test\ -file .jpg +dup +del!

第一部分有效,它将所有.jpg移动到“test”文件夹,但它不会执行第二部分。第二部分是使用SFK创建的,它会在cmd提示符中找到重复项并将其删除,但不会在.bat中删除。

1 个答案:

答案 0 :(得分:1)

如果延迟扩展处于活动状态,您的命令将无法从批处理文件中运行,因为解析器将消除感叹号。在sfk命令

之前禁用它
for /r C:\users\ %%f in (*.jpg) do @copy "%%f" C:\test\ /y 
setlocal disabledelayedexpansion
c:\tools\sfk sel -dir c:\test\ -file .jpg +dup +del!
endlocal