从批处理文件中获取批处理文件的服务器名称

时间:2013-06-04 19:20:17

标签: batch-file dos

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

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

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

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

编辑: 好吧,我明白了:

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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