Sri*_*san 6 batch ping batch-file findstr
这个批处理文件
@echo off
set path=C:\Users\ssiyengar\Desktop\Pingtest\pinglist.csv
set file=C:\Users\ssiyengar\Desktop\Pingtest\temp.txt
set qosping=1
cls
for /f "tokens=1-3 delims=," %%a IN (%path%) do (
ping %%c -n %qosping% > %file%
findstr "time< time=" %file% >nul
if %errorlevel%==1 (
echo %%a %%b IP %%c Ping FAILURE
) else (
echo %%a %%b IP %%c Ping SUCCESS
)
)
pause
Run Code Online (Sandbox Code Playgroud)
输出:
'ping' is not recognized as an internal or external command,
operable program or batch file.
'findstr' is not recognized as an internal or external command,
operable program or batch file.
SYS1 MC1 IP XX.XX.XX.XX Ping SUCCESS
Run Code Online (Sandbox Code Playgroud)
CSV 文件是:
SYS1,MC1,IP1 \
SYS2,MC2,IP2
Run Code Online (Sandbox Code Playgroud)
为什么 ping/ findstr无法识别?
如果我直接传递值而不是从 CSV 文件传递值,则效果很好。为什么?我该如何解决?
注意:环境变量已经包含Sys32
.
LPC*_*hip 14
问题是你设置了路径。Path 是一个特殊的环境变量,旨在保存具有程序(例如 ping 和 findstr)的位置的路径。
通过输入 set path=... 您可以使用一个文件覆盖此列表,从而清除这次运行的路径。幸运的是,使用 set 只会在脚本运行时更改变量,而不是在所有会话中更改变量。这就是为什么转到 cmd 并使用 csv 中的值输入 ping 仍然有效。
如果您在同一 cmd 会话中键入 set path= 行,则在关闭并重新打开 cmd 之前,手动键入带有值的 ping 将不再起作用。
如果您更改:set path=
和set mypath=
到您的%path%
脚本%mypath%
将会起作用。
归档时间: |
|
查看次数: |
3214 次 |
最近记录: |