前言
之前。想要在windows的机器上运行一个For循环. 读取配置文件并进行处理的脚本. 借此机会, 简单的学习了一下Bat脚本相关经验.
配置文件 & Bat脚本
- test.properties
# test.properties
baixu@https://www.batdu.com
tenxu@=https://www.qq.com
注意. 本次文件选择的分隔符为@
. 因为使用=
, 在url链接串里面会出现. 会导致部分替换异常.
- test.bat
@echo off
setlocal EnableDelayedExpansion
FOR /f "eol=# tokens=1,2 delims=@" %%i IN (test.properties) do (
set key="key:%%i"
set value="value:%%j"
@ping -n 3 127.0.0.1>nul
echo %key% %value%
@ping -n 3 127.0.0.1>nul
)
@ping -n 100 127.0.0.1>nul
三 要点
-
@echo off
: 隐藏命令行 -
eol=#
: 读取文件里面#号开头不读取 -
tokens=1,2 delims=@
: 以@分割. 且只取1和2号位. 1号位位%%i, 2号位为%%j. 注意FOR命令批处理内的对象需要加%%作为转义符. -
set key="key:%%i"
设置变量. 变量使用时为 %key%. -
@ping -n 3 127.0.0.1>nul
: 此处是为了替代睡眠命令. -
注意延迟变量. 和
cmd /v:on /c
开启. 否则%key%
, 这种set命令赋值后的变量值是无法生效的.
Reference
[1]. 批处理延迟变量