我需要帮助创建一个批处理文件,该文件首先在每个子目录中的每个文件上运行一个命令,然后删除该命令刚刚运行的文件。
例如:
c:\temp\1\file.abc
c:\temp\2\file.abc
c:\temp\2\file2.abc
Would run:
execute_command.exe c:\temp\1\file.abc
del c:\temp\1\file.abc
execute_command.exe c:\temp\2\file.abc
del c:\temp\2\file.abc
execute_command.exe c:\temp\2\file2.abc
del c:\temp\2\file2.abc
任何帮助将不胜感激。感谢。
答案 0 :(得分:4)
从示例中的C:\temp
文件夹中,您应该可以执行
for /r %i in (*.abc) do execute_command.exe %i && del %i
/r
开关显示“递归到当前目录的每个子目录并运行此for
命令”,以及&&允许您在do
子句中放置多个命令。
您还可以指定使用哪个文件夹作为递归的基础,因此您可以从任何地方(不仅仅是C:\temp
)执行此操作,并且它可以正常工作:
for /r C:\temp %i in (*.abc) do execute_command.exe %i && del %i
正如乔伊在评论中所说,你可以取代&&与&取决于您是否要删除文件,即使execute_command.exe返回错误。