我知道这个问题已被多次询问,但我已经阅读了几个小时的答案,并尝试了一切,似乎没有任何工作。基本上我不能成功(重新)在for/F循环中设置一个变量。如何在涉及管道的FOR循环中设置变量?
我想做以下事情:检查两台计算机之间的连接,并做一个动作(基本上启动一个程序),如果连接不再存在。
@ECHO OFF
SET _A=0
PING localhost | (for /F "tokens=*" %%a in ('FINDSTR Reply') DO @ECHO %%a & SET _A=1)
if %_A%==0 ECHO %_A% FAIL
if %_A%==1 ECHO %_A% SUCCESS
PAUSE
在这里,我认为如果ping命令没有返回至少一次的单词“回复”,那么连接丢失。
第一个“DO @ECHO %% a”起作用,但不会重置变量“_A”。我需要这个变量在FOR循环外部,因为之后“if%_A%== 1”将只能执行一次程序。
任何人都知道我在做什么错?非常感谢你的帮助。我真的尝试了一切,包括setlocal enabledelayedexpansion
,并在!!
之间放置变量,但没有任何作用,它总是打印出“失败”并且从来没有“成功”。
这真的很有道理。非常感谢你的回答和解释!祝一切顺利。 – ccflash