批处理脚本不设置变量

时间:2014-03-14 12:55:42

标签: variables batch-file for-loop set

我有(2)批处理脚本将打开的文本文件,读取第2行并将变量设置为第2行的值。文本文件只包含3行,第一个文件是数字,第二个是字母。我使用以下内容打开,阅读和设置:

for /f "token=1*delim=:" %%G in ('findstr /n "^" chnid.txt') do if %%G equ 2 set xcid=%%H
for /f "token=1*delim=:" %%L in ('findstr /n "^" cfile.txt') do if %%L equ 2 set xcfile=%%J

执行时,它可以很好地为数字设置xcid,但它永远不会为字母设置xcfile。在执行期间,我可以看到它通过if语句逐步执行文本文件的每一行,它显示每行的值,但它从不设置变量。

chnid文件有3行,每行有一组数字:

48051
12547
89745

cfile文件有3行,每行包含一组字母:

"abcdef"
"ghijkl"
"mnopqr"

有人建议乳清不会设置xcfile变量= %%J吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

我认为这就是你想要的

 set xcfile=%%M

答案 1 :(得分:0)

2个基本原因。

首先,您要定位的文件中不包含“2”。

其次,在普通字母表中,L后跟M,而不是J。这当然不是政治上正确的,因为它可能会冒犯诵读困难,所以我可能已经过时了,但我认为这很可能是你问题的原因。