【发布时间】:2014-10-07 13:27:34
【问题描述】:
我正在尝试创建一个简单的批处理脚本,它将命令的输出存储到 tmp 文件,将 tmp 文件的内容存储到变量,并输出变量:
@setlocal enableextensions enabledelayedexpansion
@echo off
ping -n 1 10.1.0.2 > tmp
SET @var= < tmp
ECHO %@var%
del tmp
我希望上面的方法可以工作,但它超出了:
C:\Documents and Settings\Administrator\Desktop>pinger.bat
ECHO is off.
(注:取@echo off 只输出ECHO is on,包括回显所有代码行)
【问题讨论】:
-
设置 var 真的有必要吗?您可以只使用
type tmp而不是设置和回显 var。 -
@rostok 是的,我需要在 var 中设置它,输出文件的内容不是我程序的目标。然后我需要对输出进行操作
-
一次操作整个文件内容还是每行一行?
-
我需要查看输出的第 7 行
Packets: Send = 1, Received = 1....并检查令牌,即确保Received = 1。我的程序的最终目标是打印“Host is up”或“Host is down” -
请参阅stackoverflow.com/questions/21245545/…。要阅读第 7 行,请使用
for /f "skip=6 tokens=*" %%v in (tmp) do ( echo %%v \n goto end )
标签: windows batch-file