我想为 Windows 中的所有文件夹递归运行命令行实用程序。我尝试了以下方法,但没有成功。
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"
我想为 Windows 中的所有文件夹递归运行命令行实用程序。我尝试了以下方法,但没有成功。
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"
尝试这个:
@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"
我们不知道您所说的“成功”是什么意思。我们可以得出结论,它没有按照您的预期进行,否则您不会问这个问题。
现在-问题是它没有在“所有文件夹”中运行您的实用程序吗?
"C:\AMDB\30-Apr-2013\Input\"
在该子树中的目录中运行。您是在向我们展示您认为有错的部分吗?
shp2sdo.exe %%~nG
而不是shp2sdo.exe %%~ni
对你更好还是它没有给你你所期望的ECHO now in %%G
?
您的代码不执行的原因是)
您的 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"