Windows批处理分词

时间:2015-09-24 12:30:25

标签: windows batch-file cmd

我正在尝试为按主机名连接的服务器创建一个脚本。大约有200台服务器,我希望脚本能够连接到运行它的系统主机名下的设备。

示例:假设服务器的主机名为 lpmm01200 ,其中" lpmm01"服务器01位于" 200"。此位置的设备(例如工作站)可能是" lwmm01200"。位置编号始终为三位数,我希望拆分主机名以获取位置编号,然后再将其与脚本将连接到的所需设备名称配对。

我可以从代码中的set变量中打印主机名,但是如何将其拆分以获得尾随的三位数对我来说是一个谜。任何帮助表示赞赏。

@ECHO OFF
FOR /F %%H IN ('hostname') DO SET hostnamevar=%%H
ECHO %hostnamevar%

1 个答案:

答案 0 :(得分:1)

您可以使用substring,如下所示

@echo off
for /f %%h in ('hostname') do set hostnamevar=%%h

set "locationvar=%hostnamevar:~6%"
set "servervar=%hostnamevar:~4,2%"
set "devicevar=%hostnamevar:~0,4%"

echo device:%devicevar%, server: %servervar%, location: %locationvar%

这应该给出这个输出:

device:lpmm, server: 01, location: 200