>> t2.txt将所有输出复制到一个新文件(有效地将所有行连接成一个,因为所有换行符都被删除,正如 OP 所要求的那样)。
结果:
C:\Users\me\Documents>type t.txt
some line
SOME OTHER LINE
>
lolwut
Some Person
SOMEBUSINESS
SomeBusiness after an empty line
Users
Line with "quotes"
Wow look at this weird characters ÎøÎñÎ[{()}]ÖοÎö neat!
C:\Users\me\Documents>FOR /F "tokens=*" %i in (t.txt) do @echo|set /p="%i" >> t2.txt
C:\Users\me\Documents>type t2.txt
some lineSOME OTHER LINE>lolwutSome PersonSOMEBUSINESSSomeBusiness after an empty lineUsersLine with "quotes"Wow look at this weird characters ÎøÎñÎ[{()}]ÖοÎö neat!
C:\Users\me\Documents>
您指定了两次输入文件,因此您将数据加倍。
如果目标是删除空行,那么您离正确的命令不远:
只需确保您当前的文件夹不是
%USERPROFILE%\Desktop\tt
,否则您将覆盖输入文件。您也可以指定输出文件的完整路径。以下帖子也可能有所帮助:
如何使用批处理或 PowerShell 从文本文件中删除换行符。
为了完全删除所有换行符,我使用了以下脚本:
以下是运行上述脚本的工作原理:
您可以做的一件事是在那里获取一些 unix/linux/*nix 命令..并使用标准的“tr”命令,示例遍布互联网。
tr -d '\r\n' < input.txt > output.txt
将删除 \r 字符和 \n 字符以及任何 \r\n 序列(或任何 \n\r 序列,尽管不应该有任何这样的东西)。Cygwin 有一些命令。xxd 命令也很好,可以查看文件中的内容。Cygwin 包括这一点。由于答案表明可以使用 findstr,那没关系.. 但如果我发现自己不得不做一些非常令人困惑的事情,用 cmd.exe 'for' 命令查找,那么我会寻找 *nix 风格的命令,它可能会有一些比“for”更简单的东西,例如“tr”!
注意 - 一些例如评论者 ItWasn'tMe 不知道您可以在 cygwin shell 之外的 cmd.exe 中使用 cygwin 命令,但您可以。尽管如此,OP 已经评论说他正在寻找一个本地解决方案,但 OP 应该把它放在他的问题中。
FOR /F "tokens=*" %i IN (t.txt) DO @echo|set /p="%i" >> t2.txt
FOR /F "tokens=*" %i IN (t.txt) ..
将逐行处理txt文件,%i
即整行。@echo|set /p="%i"
将在没有新行的情况下回显该行(source)。>> t2.txt
将所有输出复制到一个新文件(有效地将所有行连接成一个,因为所有换行符都被删除,正如 OP 所要求的那样)。结果:
如果您需要输出文件与输入文件相同,则可以
move
(或copy
或type >
或...)t2.txt
overt.txt
. 在单个.cmd
文件中的外观示例:事实上,上面的这个命令可以完成这项工作,但是,我认为这行不通,而且我还假设你
user name
有空格(“复合名称”==“以利沙哈宾斯基”)"%USERPROFILE%\Desktop\tt\t.txt"
1)在和中使用引号%USERPROFILE%\Desktop\tt\t.txt"
> t.txt
2)不需要使用引号
regex
:
"
.
"
3) 这意味着任何字符,也包括空格、制表符。
.
4)如果您的文件中只有标签的行?空白行不是 100% 空白,因此,这些行也保存到文件输出!
5)考虑使用
t.tmp
文件来完成这项工作。6)我的建议是在最后一行代码中使用 bat 的代码,只需复制这些行并另存为
file.cmd
,bat 将删除任何空白行中的所有选项卡。对于只有标签的行:
对不起我有限的英语