【问题标题】:How to set each line from text file to a string variable?如何将文本文件中的每一行设置为字符串变量?
【发布时间】:2019-06-26 13:22:04
【问题描述】:

我正在尝试排列文本文件中的文本。

这是为了排列并显示文本文件的每一行。我试过我自己的批处理程序。但它失败了。

file.txt 包含,

Rabbit
Cat
Dog
Cow
Pig

test.bat 包含,

@echo off
cls
for /f "skip=1 tokens=*" %%a In (file.txt) do set "str=%%a" & goto next
:next
echo %str%
pause>nul

运行test.bat时在cmd窗口中的预期输出

Rabbit
Cat
Dog
Cow
Pig

但实际输出是在 cmd 窗口中,

Cat

【问题讨论】:

  • 你写的命令应该输出你给我们看的信息。打开命令提示符窗口并输入 for /? 以阅读您遇到问题的命令的使用信息。
  • 那是因为你在第一行之后用goto 中断了循环。试试for /f "skip=1 tokens=*" %%a In (file.txt) do echo %%a
  • 如果你想要第一行,(不以分号开头),也不需要使用Skip
  • 这工作并且它显示输出。但是,实际上我想在不同的变量中显示 echo 1 - %var1% echo 2 - %var2% echo 3 - %var3% echo 4 - %var4% echo 5 - %var5% 每一行。请帮我设置一下。
  • 所以你基本上想要有类似数组的变量,因此你应该看看this great post...

标签: batch-file cmd


【解决方案1】:

实现一个计数器并使用它来生成变量名称,如str[1]...:

@echo off
setlocal enabledelayedexpansion
set counter=0
for /f "tokens=*" %%a In (file.txt) do (
  set /a counter+=1
  set "str[!counter!]=%%a"
)
set str[

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 2021-10-17
    • 2021-05-22
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多