我一直在经历一个bat文件问题。
我在主bat文件中调用一个bat文件。这两个bat文件位于同一个文件夹中,即“D:\”
TEST.BAT:
SET str=HELLO
ECHO say %str% Test
Call Child.bat
Child.bat:
ECHO say %str% child
在Test.bat
文件中,我已经声明了一个变量str
并在子bat文件中使用它。当我通过双击直接运行Test.bat时,它按预期工作,我将得到结果
say HELLO Test
say HELLO Child
但问题出在这里,如果我在命令提示符下从另一台机器上运行Test.bat文件
它只执行Test.bat并且无法调用Child.bat,因为我得到像
这样的输出say HELLO Test
Child.bat not recognized as an internal or external command, operable program or batch file
在上面的命令提示符下,我可以看到一个语句,如
'\\Server\D$\' CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.
实际上我需要设置一个sql作业来调用Test.bat文件。
如何解决此问题?
答案 0 :(得分:0)
test.bat的
pushd "%~dp0"
SET str=HELLO
ECHO say %str% Test
Call Child.bat
popd
只需创建一个临时映射并将当前文件夹更改为它。最后发布它。 pushd /popd
会处理它。
但是当它工作时,如果调用批处理文件时当前的活动目录是UNC路径(从Windows run
对话框调用它时会发生什么),将显示UNC错误。如果要避免它,请确保使用其他目录启动进程作为默认目录。