命令在命令行中运行但在BAT文件中不运行

3

我有一条一行代码的批处理命令,可以按日期对文件进行排序,然后删除除最后10个以外的所有文件。当我在CMD窗口中运行这个命令时,它运行得很好。但是,当我将它放入一个BAT文件中时,就会出现错误。

命令(在CMD窗口中正常工作):

for /f "skip=10 delims=" %A in ('dir /a:-d /b /o:-d /t:c *.jpg ^2^>nul') do del %A

如果尝试在批处理文件中运行时出现的错误:

Q:\Testbk>test1
-d was unexpected at this time.

Q:\Testbk>for /f "skip=10 delims=" -d /b /o:-d /t:c *.jpg ^2^>nul") do del A

任何关于如何在BAT文件中修复它的想法将不胜感激。

2
从“for /?”帮助屏幕中:要在批处理程序中使用FOR命令,请指定%%variable而不是%variable - Michael Burr
是的。Bash脚本编程真的很棒,不是吗? - kwikness
我是个白痴。非常感谢! - Maximilian Sarte
不要难过。我也是个白痴。花了30分钟才理解并发布了我的答案,结果却遇到了Michael Burr的评论/答案更新屏幕。 - dmm
同时删除2前面的^,因为它不是必需的。 - foxidrive
1个回答

2

您需要在批处理文件中添加 %%A。我将原来的批处理代码更改为了“type”而不是“delete”。

for /f "skip=4 delims=" %%A in ('dir /a:-d /b /o:-d /t:c *.jpg 2^>nul') do type "%%A"

因为我不想删除我的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接