【发布时间】:2019-01-01 15:29:35
【问题描述】:
我想制作一个程序,它获取文本文件第二行的内容并将其放在第一行。 (如果第二个不被编辑也没关系)
for /f "tokens=1" %%t in (file.txt) do set string1=%%t
for /f "tokens=2" %%t in (file.txt) do set string2=%%t
echo %string1%%string2%>file.txt
我有两个问题似乎无法解决。
一个:循环只包含变量中每一行的第一个单词。
二:Echo 不会用给定的变量替换文件的第一行,而是写 ECHO 命令已停用(我有 Windows 10 的法语版本,只是简单地翻译了文件中写入的内容,英文 Windows版本可能略有不同,但你明白了)
如果您有任何建议,请解释您提供的代码的作用(我一直喜欢学习)
【问题讨论】:
-
FOR命令默认使用空格作为分隔符。所以你必须告诉它不要在DELIMS选项中使用任何分隔符。此外,您应该能够使用单个FOR /F命令来执行此操作。只需将上一行保存在变量中即可。 -
使用skip省略第一行,将第二行写两次。一般来说,编辑文件意味着重写新文件,并可能重命名以保留旧文件名。
-
@LotPings,我是不是完全误解了他们的问题?他们是想合并第 1 行和第 2 行还是去掉第 1 行?
-
@Joujoubox 您能否提供一个输入和输出示例。我想我完全误解了你的意图。显示输入和输出示例有助于澄清问题。请更新您的问题。
-
@LotPings,那我猜题名应该改了。
标签: batch-file for-loop text echo