2017-07-04 75 views
1

我编写了一个批处理脚本来将文本添加到每行的末尾,但是我的批处理脚本停止在文本文件的第4行。但是当我将文本文件中的数据复制到另一个文本文件并运行批处理脚本时,它将正常运行。你能帮我找出错误吗?批处理脚本不会读取所有行

@echo off 
set Addtext=SMS 
for /f "usebackq delims=" %%l in (txt.dat) Do (
    echo %%l^|%Addtext% >> C:\Users\bi\Desktop\new.txt 
    ) 

管道中的文本文件是分隔的。

+0

嗨Nada,欢迎SO。请花一点时间来研究这一点,特别是关于证明阅读:https://stackoverflow.com/help/how-to-ask – petezurich

+1

将'txt.dat'更改为''txt.dat''或者移除'usebackq' ,我偏好前者。此外,为了防止尾随空间的回显,将'echo %% l^|%Addtext%>> C:\ Users \ bi \ Desktop \ new.txt'更改为'>>“C:\ Users \ bi \ Desktop \ new。 txt“echo %% l^|%Addtext%' – Compo

+0

它不起作用我可以与我分享我的文本文件???,可能是数据本身类型的问题 –

回答

0

下面的例子将增加一个管,|随后的%AddText%%SrcFile%内容到每一个非空行的端部,并输出给%DstFile%

从一个批处理文件:

@ECHO OFF 
SET "SrcFile=file.txt" 
SET "DstFile=%UserProfile%\Desktop\new.txt" 
SET "AddText=SMS" 
(FOR /F "USEBACKQ DELIMS=" %%A IN ("%SrcFile%") DO ECHO %%A^|%AddText% 
)>"%DstFile%" 

脚本的此功能是依赖于的%SrcFile%的格式编码。

+0

我使用你的脚本,但我认为这个问题不用脚本文件的问题我使用.dat文件作为SRCfile,当我打开该文件并保存它并运行脚本它读取其中的所有行。我可以与您分享我的数据以进行测试。 –