我已经写了以下批处理脚本,它在一个目录上运行另一个批处理脚本,或者加上标志后在一个目录树上运行,然后在不同驱动器(Z:)上的等效目录或目录树上运行。无论我选择哪个选项,都会输出错误“系统找不到指定的路径”。如果我只在一个目录上操作,尽管仍会出现错误,但它确实可以按预期执行。它在目录树上无法成功工作。我已尝试删除@echo off以了解其失败原因,但未能成功。它尝试更改的目录确实存在。
@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
非常感谢您的帮助。
谢谢。
@echo off
,这样可以帮助您找出导致“系统找不到指定的路径”的行。 - rojopurge.bat
。你验证过错误不是来自于那个批处理文件吗?顺便说一下,你在调用它时没有使用完整路径。 - Andriy M@echo off
。您也可以将其注释掉,以更精确地找出问题所在。 - Andriy M