2

我有一个 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(它们实际上是经过系统准备的,因此被认为是相同的。两个命令都有效!

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

感谢您的任何建议,

4

2 回答 2

1

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

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

编辑 对不起,我现在才注意到你说它是交互式的而不是批处理的。

于 2013-10-25T17:14:18.700 回答
0

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

尝试使用已经提供的评论的组合。

for /f "delims=" %p in ('type c:\apppools.txt') do @echo %p
于 2013-10-28T13:00:48.367 回答