我是Windows批处理脚本的新手。试图从文本文件Ignore.txt文件中获取值并将其存储为局部变量。
命令文件:
@Echo off
setlocal enabledelayedexpansion
for /F "tokens=1,2,3" %%i in (Ignore.txt) do (
echo. %%i
echo. %%j
echo. %%k
set value1=%%i
set value2=%%j
set value3=%%k
)
Echo. Value1: !value1!
Echo. Value2: !value2!
Echo. Value3: !value3!
Endlocal
字符串
Ignore.txt:
*.svc
*.jpg
*.png
型
但结果只打印了一个错误的变量:
输出:
*.svc
*.jpg
*.png
Value1: *.png
Value2:
Value3:
型
如果我在这里做错了什么,请帮助我。还有任何关于检索此信息的更好方法的建议。
2条答案
按热度按时间vwkv1x7d1#
for
的token
选项的帮助包含以下位:字符串
换句话说,它只会将一行拆分为多个变量,这可以从脚本的运行中得到证明:它输出每一行,但在每一行之间输出空行,其中空的%%j和%%k。
如果你想把这个文件解析成单独的变量,你需要手动跟踪你在哪一行,就像这样:
型
m528fe3b2#
在你的例子中,主要的困难是FOR循环不知道如何将换行符设置为换行符。所以首先你需要丢弃换行符,比如将文件的所有行收集到一个带有特定换行符的文本变量中。之后就可以获得几个变量的值。
字符串
输出
型