2011-08-23 46 views
1

我正在使用批处理脚本通过文件读取数据。基本上我想读一个特定的行并将其标记设置为不同的变量。问题是,该行没有固定数量的令牌。请看下面的文件格式:批处理文件:使用动态数量的标记设置变量

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 
    ) 
) 

编辑:问题解决了。这是太早我对我自己的问题回答由于代表不足,但这里是我的解决方案杰里米的帖子开始:

​​

回答

1

这不会解决你的问题正是你想要的方式,解决,但我认为这是一个可行的解决方案:

@echo off 

for /f "tokens=3*" %%A in (%file%) do (
    if "%%A"=="Domains" (
    set domains=%%B 
) 
) 

for %%A in (%domains%) do (
    echo %%A 
) 
+0

这是超过一半的解决方案,我终于来了,它帮助了很多!基本上我做了一个嵌套for循环(即我把你的第二个循环放入第一个循环),并用'%% B'替换'%domains%'。 – Dan