0
所以我有一个exe(xmllint.exe)来打印特定子目录中的一些XML文件。 xmllint.exe位于我的主目录中,我的脚本位于此目录中。以下是我迄今为止在子目录中批处理运行.exe
setlocal enabledelayedexpansion
for /D /r %%d in (./*targetfolder) do (
pushd %%d
for %%x in (*.xml) do (
::Get the filename, without the .old-extension
set "filename=%%~nx"
set "extension=.xml"
ren %%x %%~x.old
::Concatenate filename and extension
set "finalname=!filename!!extension!"
xmllint.exe %%x >> !finalname!
del %%~x.old
)
popd
)
但是,当然,它不运行在子目录xmllint.exe,因为它无法找到它。
将'xmllint.exe'替换为'\ path \ to \ xmllint.exe''。或者,如果''xmllint.exe'与批处理脚本位于同一目录中,则可以执行'“%〜dp0 \ xmllint.exe”'。或者你可以将包含'xmllint.exe'的目录添加到你的'%PATH%'中。 – rojo
谢谢! %〜dp0正是我所需要的! – user5417542