我编写了以下批处理脚本,它在一个目录上运行另一个批处理脚本,或者,添加一个标志,在目录树上,然后在不同驱动器 (Z:) 上的等效目录或目录树上运行。无论我选择哪个选项,它都会输出错误“系统找不到指定的路径”。如果我只在一个目录上执行它,它会做它应该做的事情,即使它给出了错误。它不能在目录树上成功运行。我已经在不关闭@echo 的情况下运行它,以尝试了解它失败的地方,但没有成功。它试图更改的目录确实存在。
@echo off
set origdir=%CD%
if X%~f1==X (
echo Please input a directory.
goto done
)
chdir /d %~f1
for %%X in (myotherscript.bat) do (set FOUND=%%~$PATH:X)
if not defined FOUND (
echo myotherscript is not in your PATH
)
if X%2==X/R (
goto recursive
) else ( goto single )
:recursive
for /d /r %%G in (.) do call myotherscript
echo Z:%~p1
chdir /d "Z:%~p1"
for /d /r %%G in (.) do call myotherscript
goto ended
:single
call myotherscript
echo Z:%~p1
chdir /d "Z:%~p1"
call myotherscript
goto ended
:ended
chdir /d origdir
goto done
:done
pause
这里是“myotherscript” 是的,purge 确实存在。
@echo off
if exist "D:\path\to\purge.bat" (
call purge
for %%f in (*.log.*) do call :renameit "%%f"
for %%f in (*.drw.*) do call :renameit "%%f"
for %%f in (*.asm.*) do call :renameit "%%f"
for %%f in (*.prt.*) do call :renameit "%%f"
goto done ) else (
echo Purge does not exist.
goto done )
:renameit
ren %1 *.1
:done
任何帮助,将不胜感激。谢谢