2011-11-03 91 views
0

我无法记住如何读取文本文件的行并执行某种任务。例如,我试图读取文本文件(一组主机名)的内容,然后在这些主机上执行TASKLIST以查看进程是否正在运行。如何:批量读取列表,将内容输出到日志文件

@echo off 

set MachineList=computers.log 

FOR /f "delims= " %%a in (%MachineList%) DO GOTO :GETINFO 

:GETINFO 
echo %%a >>results.log 
tasklist /s \\%%a | findstr /i iexplore.exe >>results.log 

这似乎不工作,我不知道我做错了什么。日志条目仅显示输出的'%a'。过去几年我都在做这种事情。我想'不使用它,你失去它'是一天的顺序。似乎应该设置另一个变量的地方,但我不记得在哪里。

回答

1

你有几个小错误。 “delims =”选项必须没有结尾空格。必须在FOR命令的同一行中使用%% a可替换参数;如果在不同的行中使用它,则必须用FOR命令中开头的圆括号分隔,但在您的情况下,这不是必需的,因为您只想在FOR中执行一条命令。 TASKLIST命令应该用文本文件的每一行执行。最后,FINDSTR命令查看iexplore.exe的结果。

@echo off 
set MachineList=computers.log 
FOR /f "delims=" %%a in (%MachineList%) DO tasklist /s \\%%a >>results.log 
findstr /i iexplore.exe results.log 
1

我觉得你可以试试这个:

@echo off 

set MachineList=computers.log 

FOR /f "delims= " %%a in (%MachineList%) DO CALL :GETINFO 

:GETINFO 
echo %%a >>results.log 
tasklist /s \\%%a | findstr /i iexplore.exe >>results.log 
相关问题