【问题标题】:How do i get the first line of a txt file and set it as a %variable% in Batch? [duplicate]如何获取 txt 文件的第一行并将其设置为批处理中的 %variable%? [复制]
【发布时间】:2019-06-22 11:09:12
【问题描述】:

我想将一个数字发送到 file.txt 作为另一个变量的临时存储,这很容易做到。我只是想不出用什么来提取 file.txt 的第一行(范围为 1-100000 的数字)并将其设置为我正在运行的批处理脚本中的 %variable%。

所以到最后我应该能够执行 echo %first-line-of-file.txt% 并且它会打印 x

非常感谢有关如何使这项工作的任何想法

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    真的很简单。

    @echo off
    For /f %%i in (file.txt) do set "var=%%i" & Goto :print
    :print
    Echo %var%
    

    for 循环通常会遍历整个文件。但是一旦第一行设置为退出循环,我们就会执行goto :EOF

    有关 for 循环的更多帮助。打开 cmd.exe 并输入 `for /?

    【讨论】:

    • 我希望它真的那么简单,但是当我在最后回显之后有任何 cmets 时,批处理也会尝试执行它们......
    • @Amalgovinus 你们的 cmets 是如何构建的?
    • 使用 setlocal enabledelayedexpansion,双冒号(以及 rem cmets 也是)作为命令执行,不包括双冒号。实际上,即使没有 :print 也会发生这种情况,我的错。但这真的很奇怪。 Windows 10
    • @Amalgovinus 听起来不对。我需要真正看到它才能找出问题所在。
    【解决方案2】:

    for 循环(就像 Gerhard 展示的那样)是最通用的方法(使用 "delims=" 来获取完整的行,即使它包含空格或其他分隔符),但要获取 first em> (或仅)文本文件的一行,有一个更简单的方法:

    <filename.txt set /p line=
    echo %line%
    

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多