Batch file 我需要用批处理脚本遍历所有子目录,包括更改工作目录?

Batch file 我需要用批处理脚本遍历所有子目录,包括更改工作目录?,batch-file,cmd,Batch File,Cmd,有一个程序可以处理文件并在工作目录中输出。 所以这不起作用: for /r "d:\root folder\" %%i IN (*.xma) do d:\whatever-path\program.exe "%%i" 我将输出放在根文件夹中,而不是输入所在的位置 有什么想法吗?如果program.exe在当前active directory中输出其数据,并且输出必须与输入数据位于同一文件夹中,则可以使用 对于(*.xma)do中的/r“d:\root文件夹”%%i( pushd“%%~dpi”

有一个程序可以处理文件并在工作目录中输出。 所以这不起作用:

for /r "d:\root folder\" %%i IN (*.xma) do d:\whatever-path\program.exe "%%i"
我将输出放在根文件夹中,而不是输入所在的位置


有什么想法吗?

如果
program.exe
在当前active directory中输出其数据,并且输出必须与输入数据位于同一文件夹中,则可以使用

对于(*.xma)do中的/r“d:\root文件夹”%%i(
pushd“%%~dpi”
d:\which path\program.exe“%%i”
邻苯二胺
)

将当前active directory更改为存储文件的active directory,并在运行命令后恢复以前的active directory。谢谢同时,我也提出了类似的想法:
对于(*.xma)中的/r“d:\root folder\”%%I做什么(CD/d“%%~dpi”d:\which path\program.exe“%%I”)
popd做什么?否则它看起来像是你的模拟。@mzso,
pushd
会将“驱动器+当前文件夹”更改为指定的文件夹(与使用
cd/d
的操作相同),
popd
取消/恢复
pushd
所做的操作。感谢您的解释。