我是批处理文件的新手,并且一直在修改简单的命令.我已经想出如何将文本移动到另一个文件,找到一行等,但我希望能够在已有的文本文件中添加几行文本.这是我到目前为止:
@ECHO OFF
CD C:\Documents and Settings\SLZ1FH\Desktop\New Folder
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF %%A=="Ex3 3"(
TYPE Line_to_add.txt >> Examples.txt
)
)
Run Code Online (Sandbox Code Playgroud)
如果Examples.txt包含:
和Line_to_add.txt包含:
我希望输出为:
tia :)
@ECHO OFF
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3" (
TYPE Line_to_add.txt
)
) >> temp.txt
move /y temp.txt Examples.txt
Run Code Online (Sandbox Code Playgroud)
你从不打扰提问,但我可以看到你的代码有一些问题.
1)您的IF语句被破坏,因为左侧的paren被视为要比较的字符串的一部分.你必须至少有一个空间.
2)您的比较永远不会找到匹配,因为引号包含在比较中.您的值有空格,因此比较的两边应该用引号括起来.
3)您正在尝试插入现有文件,但无法正常工作.您的代码只会将文本附加到文件的末尾.您必须将整个所需结果写入新的临时文件,然后将临时文件移动到原始名称.
首先,我将忽略文件的更新,并显示如何获得正确的输出到屏幕.
@ECHO OFF
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3 3" (
TYPE Line_to_add.txt
)
)
Run Code Online (Sandbox Code Playgroud)
然后,将输出定向到文件并将文件移动到所需名称很简单.
@ECHO OFF
(
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3 3" (
TYPE Line_to_add.txt
)
)
) >temp.txt
move /y temp.txt Examples.txt
Run Code Online (Sandbox Code Playgroud)
学习批处理语法和技术的良好资源:
1)每个命令都有在线帮助.只需/?在命令名后添加选项即可.例如,DIR /?
2)以下是一些信息良好的网站
http://www.dostips.com/
http://judago.webs.com/
http://www.robvanderwoude.com/batchfiles.php
| 归档时间: |
|
| 查看次数: |
15606 次 |
| 最近记录: |