我有一个批处理文件,它使用类似这样的代码从远程文本文件中获取变量-
set /p var=< examplepath\example.txt
但问题是它只会将第一行复制到变量中。因此我需要为每个变量使用一个文件。如何仅从一个文件中获取所有数据,其中变量从不同行获取数据?
例如我有这个文件example.txt
,
- 数据1
- 数据2
- 数据3
我希望set /p
函数设置var1 = data1 , var2 = data2 , var3 = data3
我们如何做到这一点?
3行.txt
测试.bat
输出:
1.在循环中实现一个计数器
For /F
,逐行从您的文件中获取:2.每一行都会被隔离保存在变量_var + counter中
3.实现一个
For /L
循环,从 1 开始,递增到计数器中定义的值 ==! _cnt!
4.将字符串
_var
与循环中的变量连接起来%%L
,以便恢复保存的每一行的值,以便_var%%L
在附加For /F
循环中使用它5.使用条件
if
,在_var_
变量已经定义的地方,定义它以便在变量中添加更多字符串,或者只用第一行的值定义它(var%%L == var1 == data1
)6.如果出于某种原因您需要由 定义的此变量
set /p
,请回显_var
重定向到另一个文件的变量,并使用它Obs.: 1请记住第 4项。 :将字符串
_var
与循环中的变量连接起来%%L
,以便恢复保存的每一行的值,以便_var%%L
在附加For /F
循环中使用它Ob.: 2变量
_var_
和_var
, 都保存了相同的内容/字符串/行一些进一步的阅读:
[√]如果/?
[√]设置 /?
[√]回声/?
[√]对于 /F/?
[√]对于 /L /?
[√]重定向
[√]
Enable/DisableDelayedExpansion
|Enable/DisableExtensions
如果将变量名称放在文本文件中,则可以在一行中读取
3lines-2.txt
test2.bat
输出