我正在寻找一个批处理脚本或PowerShell脚本,它从文本文件中读取值并将它们放在脚本局部变量中 .
例如,输入文件如下所示:
input.txt
PARAM1=VALUE1
PARAM2=VALUE2
PARAM3=VALUE3
在脚本中,我想将值放入三个不同的变量,如:
echo %variable1%
echo %variable2%
echo %variable3%
输出将是:
value1
value2
value3
我开始编写脚本:
@echo off
setlocal
for /f "delims== tokens=1,2" %%G in ("input.txt") do set %%G=%%H echo %G%
请提供一些见解或想法
3 回答
我想从文件中读取值并将它们分配给脚本局部变量 .
您的批处理文件已关闭,但需要进行一些调整:
为了读取
for
循环中input.txt
的 contents ,您需要type
该文件 .你的
echo
命令有错误,它应该是%%G
而不是%%H
.显示变量名称
test.cmd:
Example usage:
要显示变量的值,请将echo %% G替换为echo %% H.
test.cmd:
Example usage:
进一步阅读
An A-Z Index of the Windows CMD command line - 与Windows cmd行相关的所有内容的出色参考 .
for /f - 针对另一个命令的结果的循环命令 .
type - 显示一个或多个文本文件的内容 .
代码几乎没问题,除了:
如果在双引号中指定输入文件,则需要
usebackq
选项echo %G%
应该是echo !%%G!
,当然你需要在脚本开头或循环之前使用setlocal enableDelayedExpansion .或者在您的情况下,您只需在
%%H
中打印该值即可 .使用
()
用于多行for循环,否则在同一行上用&
分隔命令在
set
中使用引号,如下面的代码所示,以防值具有特殊字符 .使用
echo.
打印可能为空的行(/
,:
,(
可用于代替点)如果要使用PowerShell语法可以是:
比批处理文件更优雅:)