我试图将令牌传递给批处理脚本中的子程序 -
SET devices=host1 host2 host3
FOR /F "tokens=* delims=," %%G IN (%devices%) DO CALL :sendReq %%G
:sendReq
curl.exe http://%1:1234/service/monitor
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)
问题 -
The system cannot find the file host1- 错误信息不确定原因.
%1是不是要解决host1?
for /f实际上是要解析文本文件或命令,并一次解析整行.看看它产生了什么:
SET devices=host1 host2 host3
FOR /F "tokens=*" %%G IN ("%devices%") DO call :sendReq %%G %%H %%I
goto :EOF
:sendReq
echo Parm1: %1
echo Parm2: %2
echo Parm3: %3
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)
(即每经过循环读取一个整条生产线,并分配不同的令牌%G,然后%H,%I,%J,...这取决于你实际将有多少令牌有.)
你只需要更简单的版本for:
SET devices=host1 host2 host3
FOR %%G IN (%devices%) DO call :sendReq %%G
goto :EOF
:sendReq
echo In sendReq: %1
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10996 次 |
| 最近记录: |