批处理文件FOR命令跳过行


1

我在批量归档中需要一些FOR命令的帮助。我想要做的是读取文件“Test.txt”并只读取第三行并将其转换为此批处理文件中的可用变量。这是我尝试过的但它不起作用。

for /f "skip=2 delims=" %%a in (Test.txt) do (
  set %%a=%LineThree%
)

当我运行该程序时,它说:“系统找不到文件Test.txt。非常感谢所有帮助。


您是否在与...相同的目录中运行脚本? Test.txt
armani

也许如果你为Test.txt添加了一个完整的路径名:例如“C:\ Users \ Username \ Documents \ Test.txt”。
BillDOe

你应该写一个 cd (没有参数)在第一行检查当前目录。这取决于您启动批处理文件的方式和位置。
Werner Henze

Answers:


1
  1. 该错误表示您的文件 Test.txt 与您运行脚本的目录不在同一目录中。
  2. 为了更好地从文本文件中获取第三行,请尝试以下操作,该操作将快速运行 任何 大小文件,而不是像你一样运行整个文件(而你的错误...你实际上是抓住了 每三行一次 )。

    (对于/ l %% a in(1,1,3)do set / p LineThree =)<的test.txt

    echo%LineThree%

如另一条评论中所述,您可能希望尝试文件的完整路径而不仅仅是文件名。


0

您的代码的主要问题是缺少引号 在...(...)

它应该是:

for /f "skip=2 delims=" %%a in ('Test.txt') do (
  set %%a=%LineThree%
)

如果仍然无效,请尝试编写完整路径 Test.txt (正如其他人的建议)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.