我正在使用批处理脚本读取文件。基本上我想读取一个特定的行并将其标记设置为不同的变量。问题是,该行没有固定数量的令牌。请考虑以下文件格式:
Line 1 Domains www.google.com www.yahoo.com www.reddit.com ...
Line 2 541 5435 322 123
Line 3 273 123 432 123
我的脚本将读取第三个标记等于“域”的行,并将后面的标记存储到不同的变量中。在这种情况下,我会设置Domain1=www.google.com
,Domain2=www.yahoo.com
,Domain3=www.reddit.com
,依此类推。我的代码看起来像这样:
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
REM Delimit %%B with a space and store each token into different variables
)
)
编辑:问题解决了。由于代表不足,我现在回答我自己的问题还为时过早,但这是我从Jeremy的帖子开始的解决方案:
set index=1
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
for %%C in (%%B) do (
set Domain!index!=%%C
set /A index+=1
)
)
)
答案 0 :(得分:1)
这并不能完全按照您希望的方式解决您的问题,但我认为这是一个可行的解决方案:
@echo off
for /f "tokens=3*" %%A in (%file%) do (
if "%%A"=="Domains" (
set domains=%%B
)
)
for %%A in (%domains%) do (
echo %%A
)