2015-04-30 133 views
0

我需要一個批處理腳本,它用4行分割文件,並從這4行創建4個txt文件。逐行分割txt文件,並從每行創建一個txt文件

看起來像這樣:test.txt的

line 1 
line 2 
line 3 
line 4 

- >每一行應當以其它txt文件被輸出。

謝謝你們,梅豔芳

+0

每一行都應該打印在一個同名文件中? – npocmaka

回答

0
@echo off 
set "filen=c:\file.txt" 

for /f "usebackq tokens=* delims=" %%a in ("%filen%") do (
    (echo(%%a>%%a) 
) 
+1

這個很有用,但文件沒有內容(第1行應該是file1.txt的內容,第2行是file2.txt的內容)...其他想法?非常感謝這麼多人,阿妮塔 – diva

+0

@diva - 將被測試和修復。 – npocmaka

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "inputFile=test.txt" 
    for %%z in ("%inputFile%") do if %%~zz gtr 0 (
     set "lineNumber=1000000000" 
     for /f "delims=" %%a in (' 
      findstr /n "^" "%inputFile%" 
     ') do (
      set "line=%%a" & set /a "lineNumber+=1" 
      setlocal enabledelayedexpansion 
      >"%%~fz.!lineNumber:~-9!" (echo(!line:*:=!) 
      endlocal 
     ) 
    ) 
1

編輯:我簡化了代碼有點...

@echo off 

for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test.txt') do (
    > file%%a.txt echo(%%b 
) 

如果文件中的行以冒號開始,這個解決方案將消除結腸。如果需要,此問題可能會得到解決。

+0

爲什麼不簡單地回顯每行而不是使用SET/P? – dbenham

+0

@dbenham:因爲使用'set/P'這行可以用引號引起來。這樣,如果該行有特殊字符,如'<|>&',則它們被正確複製... – Aacini

+0

但是,擴展FOR變量時,您不必擔心轉義或引用毒性字符。 – dbenham