批处理文件匹配机器名称的开头

GAT*_*awn 0 windows batch-file

我需要做的是在现有的批处理文件中添加几行,以便它根据机器名称执行不同的操作。

我们有一个标准化的命名方案,其中机器名称的前三个字母表示机器类型和位置。对于其中三个机器前缀,我想运行一个命令,其余的我不想。

到目前为止,我所得到的是,这样的命令将查找机器名称中的字符,并根据它是否匹配返回名称或不返回任何内容:

echo %COMPUTERNAME% | FIND /I "UKD"
Run Code Online (Sandbox Code Playgroud)

使用这样的循环会做同样的事情,但对于多个名称:

FOR %%A IN (UKD UKL USD) DO echo %COMPUTERNAME% | FIND /C /I "%%A"
Run Code Online (Sandbox Code Playgroud)

我还没有弄清楚如何在IF语句或类似的东西中使用它们中的任何一个的输出。谁能帮我吗?

Rai*_*Rat 5

首先从机器名称中提取前三个字符,例如:

SET Name=%computername%
SET FirstThreeChars=%computername:~0,3%
Run Code Online (Sandbox Code Playgroud)

然后使用 FirstThreeChars 变量运行 IF 循环。

  • 是的,它是一个子串。我试图用日期字符串做一些非常相似的事情来分别拉出日/月/年,这终于完成了这项工作(我讨厌 Windows Batch)。第一个数字是从哪里开始,第二个数字是后面要抓取的字符数。 (2认同)