2014-04-03 152 views
0

我构建SCCM服务器以进行工作。我们有一组需要复制到每个构建的多个服务器的源文件。我试图创建一个脚本来提示用户参与构建的角色服务器的数量,然后运行一个循环并询问“X”个服务器的名称,然后在文本中输入这些服务器的名称文件是这样的:从批处理文件创建列表

    Server1 
        Server2 
        Server3 etc.. 

然后我打算使用的服务器名称列表做一个XCOPY到这些服务器。我想要在前端完成所有输入,以便用户可以启动并保留它,因为复制这些文件可能需要几个小时。

这是我的代码到目前为止,它只是在询问第一个服务器名称后关闭。 (还我离开的第一项跳出DO循环,这样我可以用它来清除任何旧的输入的文件)

@echo off 
Set /p ServerCount = "How Many Role Servers? : " %=% 
Set /p ServerName = "Enter Server Name : " %=% 
Echo %ServerName% >Test.txt  
Do i = 2 to %servercount% by 1 
Set /p ServerName = "Enter Server Name : " %=% 
Echo %ServerName% >> Test.txt 
Echo %i 
enddo 

回答

1

DO循环不存在BAT你必须使用一个for循环:

@echo off 
Set /p ServerCount="How Many Role Servers? : 

setlocal EnableDelayedExpansion 
for /l %%a in (1,1,%serverCount%) do (
Set /p ServerName=Enter Server Name [%%a]: 
Echo !ServerName!>>Test.txt 
) 
+0

感谢您的帮助,但是,当我输入第一个服务器名称时,文件仍然关闭 – user2701229

+0

您是否直接复制了代码?我现在测试它,它工作正常... – SachaDee

+0

好的我发现我的问题,它似乎工作。谢谢。 – user2701229