【问题标题】:How do I read lines from a txt in batch. And how do I put every line in its own variable?如何批量读取 txt 中的行。以及如何将每一行放在自己的变量中?
【发布时间】:2013-02-08 21:12:40
【问题描述】:

我需要将文本中的每一行放在它自己的变量中。像这样:

文本文件:

TEMPLATE: Permission, Username, Password;
Admin, Admin, Superflip;
User, Mom, Hi;

我希望这个文件中的每一行都在它的 OWN 变量中。有可能吗?

【问题讨论】:

  • 基本上你想创建变量数组?
  • 行数会固定吗?
  • 如果您已经解决了您的问题,请不要忘记选择最佳答案。

标签: batch-file


【解决方案1】:

以下应该可以工作...

@echo off & setlocal enabledelayedexpansion
set num=0
::Change "File_Path" to where your file is. If it is in the same directory, just put the name.
for /f "delims=" %%i in (File_Path) do (
    set /a num+=1
    set line[!num!]=%%i
)

脚本的工作原理: 变量num 设置为在for 循环中使用。 for 循环遍历文件File_Path 中的每一行,将行设置为line,以数字为后缀。

此脚本模拟创建数组。要呼叫特定线路,请输入%line[number_of_line]%。例如,要检查 line 3line 5 是否相同,您可以输入类似

if %line[3]%==%line[5]% echo Line 3 and 5 are the same.

【讨论】:

  • +1,如果改成for /f "delims=" %%i,则保存完整的行
  • +1,您也可以稍后通过for /f "tokens=1,2 delims==" %%a in ('set line') do echo Line %%a was %%b获取它们
  • 我建议您在这些情况下使用标准数组表示法:set line[!num!]=%%i。见stackoverflow.com/questions/10544646/dir-output-into-bat-array/…
【解决方案2】:

你也可以简单地这样做:

< filename.txt (
set /p line1=
set /p line2=
set /p line3=
)

这是一种更简单的方法。

【讨论】:

    猜你喜欢
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多