我从我的网络中有一个机器名称列表,我把它放在一个批处理文件中,在列表中运行,并向我展示谁被登录到每个列表中。
psloggedon \\machineA
psloggedon \\machineB
psloggedon \\machineC
psloggedon \\machineD
psloggedon \\machineE
psloggedon \\machineF
...当它碰到一台实际上不在网络上的机器时,它在进入下一台机器之前挂起30到60秒……我只是想知道是否有办法加快速度,这样如果它碰到了不在网络上的机器,它就会更快地移动到列表中的下一台机器上。
我在其他地方读到,通过在命令中添加ping -n循环,这是可能的.但是怎么做呢?
发布于 2010-11-18 16:30:34
在您的情况下,使用ping命令是正确的。
Start.cmd
FOR /F %%x in (c:\temp\pclist.txt) do call ping_psloggedon.cmd %%xping_psloggedon.cmd
ping -n 1 -i 200 -w 130 %1
if errorlevel 1 goto exit
c:\temp\pstools\psloggedon.exe \\%1
:exitpclist.txt
PCNAME1
PCNAME2
PCNAME3发布于 2010-11-19 10:15:54
只需将>> c:\output添加到c:\temp\pstools\psloggedon.exe \%1
ping -n 1 -i 200 -w 130 %1
if errorlevel 1 goto exit
c:\temp\pstools\psloggedon.exe \\%1 >> C:\output.txt
:exit现在,每次启动start.cmd时,结果都会添加到c:\output.txt中
如果您想要,您可以添加回显LoggedonUsers > c:\output.txt到start.cmd中,以便在开始时获得一个干净的output.txt。
echo LoggedonUsers > c:\output.txt
FOR /F %%x in (c:\temp\pclist.txt) do call ping_psloggedon.cmd %%x你说“这也是ERRORLEVEL声明”是什么意思?
发布于 2010-11-19 11:47:33
再次感谢,伙计:)
这也很管用!是否可以只输出机器名称的值?与我目前在输出文件中得到的所有其他文本相反。
所以目前在output.txt中它显示的是.
连接到to 013131的注册表..。
本地登录用户: 19/11/2010 09:08:05域名\userid用户通过资源共享登录: 19/11/2010 11:44:17域名\userid
不管怎么说,这样它就可以在列表中运行并输出LT013131了吗?
因此,一旦脚本完成,我将只需要一个机器名称的列表。
谢谢:)
https://serverfault.com/questions/203366
复制相似问题