无法从另一个内部调用.bat文件 - “未被识别为内部或外部命令”错误

时间:2010-06-04 19:37:09

标签: windows batch-file

我试着看看有关这方面的其他问题,但没有去。我试过直接调用另一个bat文件(例如“otherBat.bat”),“call”命令,甚至是“start”命令。所有这些都失败了,我不知道为什么。两个.bat文件都在同一个文件夹中,我没有更改目录,所以我不知道问题是什么......

对此的任何帮助将非常感谢^ _ ^

编辑:对不起,这是代码:)

primary.bat:

echo Test run...enter variable1
set /p var1=:


echo Test run...enter variable2
set /p var2=:


call other.bat %var1% %var2%

pause

other.bat:

echo Working!
pause

4 个答案:

答案 0 :(得分:6)

您应该cd到第一个批处理文件中的当前目录,或者按完整路径调用第二个批处理文件。

答案 1 :(得分:1)

路径中的第二个.bat文件是什么?如果您更改第一个.bat文件以使用绝对路径调用它会发生什么?

答案 2 :(得分:1)

使用绝对路径:

::prototype 
CALL [drive:][path]filename [parameters]

::example
call C:\Users\theUserName\path-to-your-file\the-file-name.bat %your-variables-to-pass%

cf the call documentation from ss64.com

答案 3 :(得分:0)

绝对路径可以用%~dp0\代替,这意味着使用当前脚本的路径而不是运行时上下文;在你的情况下call %~dp0\other.bat %var1% %var2%

从上下文菜单中以管理员身份运行时遇到同样的问题 - call 尝试在 System32 而不是父 BAT 文件夹中执行批处理文件。