我想以递归方式为所有文件夹运行命令行实用程序 在窗户。我试过以下,但没有成功。
FOR /R "C:\AMDB\30-Apr-2013\Input\" %%G in (.) DO (
shp2sdo.exe %%~ni %%~ni -g geometry -d -x (-180,180) -y (-90,90) -s 8307 -t 0.5 -v
Pushd %%G
Echo now in %%G
Popd )
Echo "back home"
答案 0 :(得分:1)
试试这个:
@echo off &setlocal
FOR /R /D "C:\AMDB\30-Apr-2013\Input" %%G in (*) DO (
Pushd "%%G"
shp2sdo.exe "%%~ni" "%%~ni" -g geometry -d -x (-180,180) -y (-90,90) -s 8307 -t 0.5 -v
Echo now in %%G
Popd
)
Echo "back home"
答案 1 :(得分:0)
我们不知道“成功”是什么意思。我们可以得出结论,它没有按照你的期望做,否则你不会问这个问题。
现在 - 问题是它没有在“所有文件夹”中运行您的实用程序吗?
"C:\AMDB\30-Apr-2013\Input\"
中运行
该子树中的目录。您是否向我们展示了您认为有错的部分?
shp2sdo.exe %%~nG
而不是shp2sdo.exe %%~ni
为你做得更好或者,当你ECHO now in %%G
时,它没有给你你期望的东西吗?
答案 2 :(得分:0)
您的代码未执行的原因是SHP2SDO.EXE参数中的)
字符过早关闭了FOR DO循环。这些括号需要转义:
FOR /R "C:\AMDB\30-Apr-2013\Input\" %%G in (.) DO (
shp2sdo.exe %%~ni %%~ni -g geometry -d -x (-180,180^) -y (-90,90^) -s 8307 -t 0.5 -v
Pushd %%G
Echo now in %%G
Popd
)
Echo "back home"