2014-11-04 290 views
0

以下代碼列出一個目錄中的文件的名稱:DOS批處理輸出TXT文件中刪除最後一個空行

for /f %%a in ('dir /b D:\folder\*.xml') do (
    echo %%a >> lines.txt 
) 

結果(包括行號):

1 86002_2014_1.xml 
2 86014_2014_1.xml 
3 86014_2014_2.xml 
4 86016_2014_1.xml 
5 86017_2014_1.xml 
6 

我總是有一個空行在任何輸出TXT文件從批處理結束...

有沒有辦法讓一個乾淨的文件沒有這一行?

回答

1

您的命令的輸出會生成一組行,所有行都以CRLF對結尾。這是正常的行爲。 ....text...0x0D0x0A,windows中的標準行終止。

因此,在你的情況下,如果有另一行或不只是一個觀點。但是,至於你,最後的CRLF不理想,就必須丟棄結束CRLF中的所有行(<nul set /p ".=text"),並將其轉換在出發CRLF(echo(

set "first=" 
<nul (for /f "delims=" %%a in ('dir /b D:\folder\*.xml') do (
    if defined first (echo() else (set "first=1") 
    set /p ".=%%a" 
)) > lines.txt 
相關問題