child.bat未被识别为内部或外部命令,可操作程序或批处理文件

时间:2015-04-09 04:59:40

标签: cmd batch-processing

我一直在经历一个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文件

  • 开放运行
  • 输入//Server/D$/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文件。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

test.bat的

pushd "%~dp0"
SET str=HELLO
ECHO say %str% Test
Call Child.bat
popd

只需创建一个临时映射并将当前文件夹更改为它。最后发布它。 pushd /popd会处理它。

但是当它工作时,如果调用批处理文件时当前的活动目录是UNC路径(从Windows run对话框调用它时会发生什么),将显示UNC错误。如果要避免它,请确保使用其他目录启动进程作为默认目录。