2017-01-17 65 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 
相關問題