我有一个文本文件的服务器名称(servers.txt),如下所示:
server1 server2 server3
我有一种感觉,这可以用FOR命令来完成,因为我使用它来对文件中的每个名称执行一个操作,但是我不太清楚如何使用分隔符来完成这个操作。
for /F "tokens=*" %%G in (servers.txt) do ( SET machinenum = <magic here> ECHO %machinenum% )
预期产出
01 02 03
在你的例子中,你将如何做到这一点。 无论您拥有多less台服务器,请将标记放大(1-8)。 如果你不知道有多less台服务器,那么将每台服务器放在它自己的产品线上会容易得多。
for /f "tokens=1-3 delims=server" %%a in ('type server.txt') do set machinenum=0%%a0%%b0%%c echo %machinenum%
如果这是一个实际的batch file,请使用double %%。 如果来自命令行,请使用单个%
您需要设置ENABLEDELAYEDEXPANSION才能使其工作。
用零填充是困难的。 你可以尝试:
setlocal ENABLEDELAYEDEXPANSION @echo off for %%a in (00 01 02 03 04 05 06 07 08 09) do ( set machinenum= @set machinenum=%%a @echo !machinenum! )
如果零不是必要的,那么可以获得一些灵活性(假设有20个服务器):
setlocal ENABLEDELAYEDEXPANSION @echo off for /l %%a in (1,1,20) do ( set machinenum= @set machinenum=%%a @echo !machinenum! )