我需要删除此批处理脚本的输出文件中生成的空行

问题描述 投票:0回答:1

我使用了这个脚本,它创建同一文件的多个副本,所有副本均从列表中命名。除了在单词

clank
之后创建额外的空行之外,它工作得很好。

我需要文件在其自己的行上包含单词

clank
,没有额外的空格或空行。

要创建数百个文件,我无法手动编辑每个文件以删除事后的空行。

@ECHO ON
::: Implicit
:::: Ensure there are NO SPACES in this path
SET FileList=List.txt
FOR /F "TOKENS=*" %%F IN (%FileList%) DO (
    ECHO. >>"%%~F.mat"
    CALL :CreateFile "%%~F.mat"
)
GOTO EOF
:CreateFile
ECHO ^clank>"%~1"
GOTO EOF

这里有几张图片。

当前文件创建后的样子:

with blank line as created

它应该是什么样子:

without blank line after manual editing

我尝试的一切都无济于事。

batch-file
1个回答
0
投票

这很棘手且不直观,但使用

SET
很容易做到。

要“回显”不带回车符的内容,请使用

SET
命令的提示功能,如下所示:

<NUL SET /P="ABC"

将输出字母

A
B
C
,仅此而已,文本用引号引起来。此处显示的不同示例在十六进制查看器中通过管道传输。

ECHO "ABC" | xxd
echo ABC | xxd
00000000: 4142 4320 0d0a                           ABC ..

< NUL SET /P=ABC| xxd
00000000: 4142 4320                                ABC 

< NUL SET /P="ABC" | xxd
00000000: 4142 43                                  ABC
© www.soinside.com 2019 - 2024. All rights reserved.