我有一個.txt文件,我需要擺脫最後一個換行符。 在十六進制編輯器中查看文件時,它在末尾顯示「0d 0a」。批處理:刪除文本文件末尾的換行符?
我已經看了線程How to delete Linefeed using batch file,但沒有幫助。 我試過COPY source target /b
這也沒有幫助。
不幸的是我不能使用Java或任何第三方工具,我需要使用批處理文件。
有沒有人有一個想法如何在最後擺脫那個換行?
非常感謝和問候, 彼得
我有一個.txt文件,我需要擺脫最後一個換行符。 在十六進制編輯器中查看文件時,它在末尾顯示「0d 0a」。批處理:刪除文本文件末尾的換行符?
我已經看了線程How to delete Linefeed using batch file,但沒有幫助。 我試過COPY source target /b
這也沒有幫助。
不幸的是我不能使用Java或任何第三方工具,我需要使用批處理文件。
有沒有人有一個想法如何在最後擺脫那個換行?
非常感謝和問候, 彼得
使用批處理這應該工作。
@echo off
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (myFile.txt) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
<nul set /p "=%%a"
)
) > out.txt
它會將所有的線條和追加到每行CR/LF,而不是最後一個
試試下面的代碼作爲起點
@echo off
copy %1 temp.txt
echo d >debug.tmp
echo r >>debug.tmp
echo a >>debug.tmp
echo dec cx >>debug.tmp
echo dec cx >>debug.tmp
echo. >>debug.tmp
echo g =100 102 >>debug.tmp
echo w >>debug.tmp
echo q >>debug.tmp
debug temp.txt <debug.tmp
此批,首先,將文件複製到需要有一個臨時文件8.3名稱。
然後它準備一個調試腳本來砍掉臨時文件的最後兩個字節。
前兩條調試指令R
和D
只是顯示文件和寄存器的內容(帶有包含文件長度的重要CX值)它們可以被刪除。
然後調試腳本進入彙編模式A
併產生兩條DEC CX
指令,這兩條指令減少CX的兩倍。空白行離開彙編模式。
腳本執行G
兩條彙編指令。
然後調試腳本將W
寫回文件中相同的內容讀取,減去兩個字節的長度。最後退出Q
調試。
此代碼僅適用於小於64kB的文件。對於較大的文件,您需要擴展彙編代碼,在減少CX以遞減BX後檢查進位標誌。
欲瞭解更多信息,請閱讀DEBUG /?
,然後嘗試DEBUG
和?
可能重複(http://stackoverflow.com [如何使用批處理文件刪除換行]/questions/3116022 /如何刪除換行使用批處理文件) – CharlesB 2011-06-06 15:46:37
爲什麼不鏈接的問題工作? – CharlesB 2011-06-06 15:46:54
@CharlesB:我真的不知道。當我在(inputfile.txt)中運行'for/f「delims = tokens = *」%% x do echo %% x >> outputfile.txt'時,它給了我相同的輸出 - 最後一個換行符仍然存在。有沒有其他方法可以解決這個問題? – Peter 2011-06-07 06:40:36