我试着看看有关这方面的其他问题,但没有去。我试过直接调用另一个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
答案 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%
答案 3 :(得分:0)
绝对路径可以用%~dp0\
代替,这意味着使用当前脚本的路径而不是运行时上下文;在你的情况下call %~dp0\other.bat %var1% %var2%
。
从上下文菜单中以管理员身份运行时遇到同样的问题 - call
尝试在 System32 而不是父 BAT 文件夹中执行批处理文件。