我正在编写一个批处理脚本来读取文件。该文件包含类似token=value的行。我有解析文件每一行的代码,并将其存储在%%i中。以下代码尝试提取token的值:
请注意,此脚本使用延迟扩展,如评论中所述。
如果token密码的值包含"!",那么"!"将被跳过,只有字符串的其余部分存储在变量密码中。例如,如果行是: password=Test!
那么变量password=Test。我尝试了各种方式更改输入文件,但批处理脚本读取的除了"!"之外的所有内容。我使用了以下方法:
1. password="Test!" 2. password="Test^!" 3. password=Test%! password=Test%!
所有这些都跳过了"!"。您有什么办法可以将带有"!"的字符串读入变量中吗?
请注意,此脚本使用延迟扩展,如评论中所述。
for /f "tokens=1* delims==" %%a in ("%%i") do (
if "%%a"=="password" ( set password=%%b )
)
如果token密码的值包含"!",那么"!"将被跳过,只有字符串的其余部分存储在变量密码中。例如,如果行是: password=Test!
那么变量password=Test。我尝试了各种方式更改输入文件,但批处理脚本读取的除了"!"之外的所有内容。我使用了以下方法:
1. password="Test!" 2. password="Test^!" 3. password=Test%! password=Test%!
所有这些都跳过了"!"。您有什么办法可以将带有"!"的字符串读入变量中吗?
^^!
可以行得通? - aschipfl^^^!
在我的答案中与测试脚本一起工作。 - GuitarPicker