Windows批处理For循环不在一台服务器上工作,在其他服务器上工作

时间:2013-10-18 19:31:54

标签: windows loops batch-file for-loop

我有一台Windows 2008 Server(非R2);我试图根据应用程序池列表修改属性(/ AppPool / maxProcesses)。 所以我这样做了:

set appcmd=c:\Windows\system32\inetsrv\appcmd.exe
for /f %p in (c:\apppools.txt) do @%appcmd% set apppool %p /processmodel.maxProcesses:2

没有输出。此外,这都是交互式的,而不是批处理文件。 通常,它应该显示AppPools,以及在设置拼写错误时设置属性或错误的事实。

然后我继续验证为什么不输出

for /f %p in (c:\apppools.txt) do @echo %p

再也没有。 我转到另一个Windows 2008(它们实际上是sysprepped,因此被认为是相同的。两个命令都有效!

有没有人见过这样的东西,或者至少有类似的东西? 我以为这个服务器可能需要睡眠(重新启动),但这可能只能在周末使用,因为它是服务器。

感谢您的任何建议,

2 个答案:

答案 0 :(得分:1)

如果从批处理文件中运行此操作,则需要使用另一个%转义for循环变量中的%。

for /f %%p in (c:\apppools.txt) do @echo %%p

修改 对不起,我刚才注意到你说它是互动的而不是批处理。

答案 1 :(得分:0)

可能是文件隐藏在一个系统而不是另一个系统上,或者如果隐藏在两个系统上,则隐藏文件在两个系统上的处理方式不同。

尝试结合已提供的评论。

for /f "delims=" %p in ('type c:\apppools.txt') do @echo %p