У меня есть exe (xmllint.exe), чтобы довольно печатать некоторые XML-файлы в определенных подкаталогах. Xmllint.exe находится в моем maindirectory, где мой скрипт. Вот то, что я до сих порBatch Running .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' на' 'путь \ to \ xmllint.exe''. Или, если 'xmllint.exe' существует в том же каталоге, что и пакетный, вы можете сделать' '% ~ dp0 \ xmllint.exe''. Или вы можете добавить каталог, содержащий 'xmllint.exe', в'% PATH% '. – rojo
Спасибо! % ~ Dp0 было именно тем, что мне нужно! – user5417542