2017-01-17 69 views
1

我正在尝试创建批处理文件脚本,以将正常的.txt文档转换为完全垂直的文档。例如:在每个字符[批处理文件]后面插入新行

来源:

This is a test document, 
it is displaying characters on the same line. 

要:

T 
h 
i 
s 

i 
s 

a 

t 
e 
s 
t 

d 
o 
c 
u 
m 
e 
n 
t 
, 

i 
t 

i 
s 

d 
i 
s 
p 
l 
a 
y 
i 
n 
g 

c 
h 
a 
r 
c 
t 
e 
r 
s 

o 
n 

t 
h 
e 

s 
a 
m 
e 

l 
i 
n 
e 
. 
+0

这个网站是不是一个自由撰稿服务!先尝试一下,然后再坚持下来,回到这里,分享你的努力,并清楚描述你遇到的问题!阅读至少[游览]并在这里学习[问]! – aschipfl

回答

5

也许这不会完全地满足您的需求,但作为一个起点,你可以尝试

cmd /u /c"type normal.txt" | find /v "" > vertical.txt 

这将启动一个带有unicode输出的cmd实例。在这个实例中,normal.txt文件被发送到标准输出。将cmd实例的所有输出传送到find命令中,该命令将作为行终止符看到空字符(unicode输出为每个字符序列两个字节,其中一个为空或为0x00 ascii),并将在输出之后输出新行每个角色。所有数据都被重定向到输出文件。

1

下面的脚本是基于MC NDanswer,避免到位线断裂也发生在原文件中的其他行分解:

@echo off 
setlocal EnableExtensions DisableDelayedExpansion 

set "SPACE= " 
set "FLAG=#" 
for /F delims^=^ eol^= %%C in (' 
    cmd /U /C type "%~dpn0.txt" ^| find /N /V "" 
') do (
    set "CHAR=%%C" 
    setlocal EnableDelayedExpansion 
    set "CHAR=!CHAR:*]=!" 
    if defined CHAR (
     echo(!CHAR! 
     endlocal 
     set "FLAG=#" 
    ) else (
     if defined FLAG (
      echo(%SPACE% 
      endlocal 
      set "FLAG=" 
     ) else endlocal 
    ) 
) 

endlocal 
exit /B 
相关问题