我想写一个简单的Windows批处理文件,从标准输入读取一个文本文件, 并向标准输出写入相同的内容,但作为一条长线,有点像你想要的那样 如果用空格替换输入中的每个回车 - 换行符,则得到。
任何人都知道怎么做?
答案 0 :(得分:1)
如果总大小小于8192个字符,则可以将所有行粘贴在一起 并将结果回显到新文件,最后只有一个CR / LF。
setlocal EnableDelayedExpansion
set "text="
for/f "delims=" %%a in (multiLine.txt) do (
set "text=!text!%%a"
)
>newFile.txt echo !text!
您也可以使用set /p
输出没有CR / LF的文本,但它不能处理等号或前面的空格。
编辑:第一个解决方案有效,但空行和带感叹号的行有问题。
这是一个消除这两个问题的解决方案。
@echo off
setlocal EnableDelayedExpansion
set file=multiLine.txt
set "AllText="
for /F "tokens=2 delims=:" %%L in ('find /c /v "" %file%') do set /a "len=%%L"
<%file% (
for /L %%n in (1,1,!len!) DO (
set "line="
set /p "line="
set "AllText=!AllText!!line!"
)
)
>newFile.txt echo(!AllText!
答案 1 :(得分:0)
使用powershell:
(gc c:\file) -join ''