Batch file 为什么赢了';我的命令不能在.bat文件中工作吗?

Batch file 为什么赢了';我的命令不能在.bat文件中工作吗?,batch-file,file-io,cmd,duplicate-removal,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如

所以我的目标是将某个文件类型移动到一个文件夹中。然后在该文件夹中找到所有副本并将其删除

我想到了这个:

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

如果延迟扩展处于活动状态,则批处理文件中的命令将不起作用,因为感叹号将被解析器消除。在使用
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