Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 批处理日志循环回显_Loops_Batch File_Logging_Echo_Psexec - Fatal编程技术网

Loops 批处理日志循环回显

Loops 批处理日志循环回显,loops,batch-file,logging,echo,psexec,Loops,Batch File,Logging,Echo,Psexec,我的批处理文件通过psexec停止和启动服务,并将结果记录到txt文件中。批处理按预期运行,但日志文件仅从psexec引用的文件中写入第一个令牌。如何确保日志与循环一起迭代 @echo off setlocal enabledelayedexpansion for /f %%a in (IP_LIST.txt) do call :action %%a :action psexec \\@IP_LIST.txt -u admin -p password cmd /c "net stop spoo

我的批处理文件通过psexec停止和启动服务,并将结果记录到txt文件中。批处理按预期运行,但日志文件仅从psexec引用的文件中写入第一个令牌。如何确保日志与循环一起迭代

@echo off
setlocal enabledelayedexpansion
for /f %%a in (IP_LIST.txt) do call :action %%a

:action
psexec \\@IP_LIST.txt -u admin -p password cmd /c "net stop spooler && net start spooler && echo [%date%, %time%] - Restarted service on %1 && echo ===========================================" >> LOG.txt
以下是日志文件的外观:


文件
IP_LIST.txt
每行包含1个IP,没有附加数据。

您需要将命令行参数与PSEXEC一起使用

@echo off
for /f %%a in (IP_LIST.txt) do call :action %%a

GOTO :EOF
:action
psexec \\%1 -u admin -p password cmd /c "net stop spooler && net start spooler && echo [%date%, %time%] - Restarted service on %1 && echo ===========================================" >> LOG.txt

如果不希望日志文件中有输出,请将输出从
NET.exe
重定向到
NUL
设备。现有代码应将所有内容写入日志文件,因为您正在使用
>
操作符附加到文件中。你应该在你的
:action
标签前加上一个
GOTO:EOF
,否则它会再次尝试执行。我想要输出,它只是没有给我想要的。它不会增加IP和时间,即使循环是通过针对net.exe推送的文件增加的。您的代码也没有意义。如果正在向ip列表文件馈送
PSEXEC
,则无需使用
for
命令。如果要将
用于
命令,则psexec命令应如下所示:
psexec\\\%1……
因此,基本上按照代码的设置方式,它将运行psexec n^2。如果文件中有10个ip地址。它将运行psexec 100次。
@echo off
for /f %%a in (IP_LIST.txt) do call :action %%a

GOTO :EOF
:action
psexec \\%1 -u admin -p password cmd /c "net stop spooler && net start spooler && echo [%date%, %time%] - Restarted service on %1 && echo ===========================================" >> LOG.txt