-2
  1. 我有 2 个服务器,server1server2
  2. server1中,我有 1 个批处理脚本A1.bat
  3. server2中,我有 2 个批处理脚本A2.batA3.bat
  4. A1.bat 文件调用 A2.batA2.bat 调用 A3.bat 文件
  5. 当我从 server2 执行 A2.bat 文件时,它工作正常。它正在调用 A3.bat 文件。
  6. 但是当我从 server1 执行 A1.bat 文件时,A2.bat 文件成功执行但未能调用 A3.bat 文件。

在 A1.bat 中:

   @echo off
   Call \\server2\full_path\A2.bat

在 A2.bat 中:

   @echo off
   echo Hello
   Call A3.bat

在 A3.bat 中:

   @echo off
   echo World

我不想更改 A2.bat 中的代码。如果我在 A2.bat 中给出完整路径来调用 A3.bat,那么它工作正常。

在 A2.bat 中:

   @echo off
   echo Hello
   Call \\server2\full_path\A3.bat

是否有可能通过使用 A1.bat 从 server1 调用 A2.bat 来更改代码 A1.bat(如使用 psexec 或任何东西)以执行 A3.bat。

请帮忙!先感谢您 :) !

4

1 回答 1

2

\\AB\full_path当前工作目录不支持UNC 路径,例如。因此%CD%在 中没有设置,无法解析A2.bat到的相对引用。A3.bat必须修改A2.bat.

有多种方法可以做到这一点;最好的方法是模拟相对参考:

call "%~dp0A3.bat"
于 2018-07-29T18:11:07.403 回答