繁体   English   中英

如何递归执行Windows批处理命令?

[英]How to execute a windows batch command recursively?

例如,批处理文件中有重命名命令,并且您希望在当前目录和所有子目录上执行该文件。

假设您的批处理名称类似于myrename.cmd ,那么您可以轻松地执行以下操作:

call myrename.cmd
for /r /d %%x in (*) do (
    pushd "%%x"
    call myrename.cmd
    popd
)

第一行将为当前目录运行它, for循环将在所有目录( /d )上递归迭代( /r )并执行括号中的部分。 我们在其中做的是将目录更改为我们当前正在迭代的目录,其中pushd -which具有可以使用popd撤消该目录更改的nice属性 - 然后运行该命令,然后将在目录中运行该命令我们刚转到。

这假设批处理位于路径中的某个位置。 如果它没有并且恰好位于上面的批处理文件所在的位置,那么您可以使用

"%~dp0myrename.cmd"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM