0

MachineX 正在通过 UNC 路径调用 MachineA 或 MachineB 的批处理文件,具体取决于服务器故障转移状态:如果一切正常,则通过路径\\MachineA\files\Batch1.bat 调用批处理。如果发生故障转移,MachineX 知道通过路径\\MachineB\files\Batch1.bat调用批处理。

在不使用附加参数或利用 MachineX 如何知道要调用哪台机器的情况下,我需要在批处理中知道它在哪台机器上运行,以便它可以访问机器上的其他文件。为此,我想将机器名称存储在一个变量中。

因为执行机器是 MachineX,所以我不能使用主机名变量来提取批处理,但是由于始终使用完全限定的 UNC 路径调用批处理,因此参数 %0 将在路径中包含机器名称。由于系统是镜像设置的一部分,因此批处理文件始终保持相同,因此无法进行硬编码。

从批处理文件中获取机器名称的最简单方法是什么,而不必去外部?提前致谢。

编辑:好吧,我想通了:

for /f "tokens=1,2,3,4,5 delims=\" %%a in ('echo %~p0') do set svrpth=%%a

只要路径路径中的文件夹不超过 5 个,就可以正常工作,为此目的是可以接受的。

感谢你的帮助。

4

1 回答 1

0

如果每台机器上的路径都相同,您可以简单地从 %0 变量(调用脚本的路径)中删除它 - 剩下的将是机器名称

于 2013-06-04T19:30:10.913 回答