0
我想在windows xp機器上使用命令行(批處理文件)將文本文件eol轉換爲unix窗口格式。我怎麼做?這是什麼命令?謝謝。eol unix到命令行中的窗口批處理
我想在windows xp機器上使用命令行(批處理文件)將文本文件eol轉換爲unix窗口格式。我怎麼做?這是什麼命令?謝謝。eol unix到命令行中的窗口批處理
這個簡單的腳本速度很快,除了將每個TAB字符轉換爲8個空格之外,它的工作效果很好。可以使用MORE/T選項修改空格的數量,但無法保留TAB字符。將文件名(可選地帶有路徑)作爲唯一的參數傳遞。
@echo off
more %1 >%1.new
move /y %1.new %1 >nul
所有需要的是讀取和回顯每一行。 FOR/F命令是完美的,除了它忽略空行。在這裏,我使用FINDSTR在每行的前面加上行號,然後是:
,從而保留空行。然後我使用搜索和替換來刪除數字前綴。我必須在循環中開啓和關閉延遲擴展以保留可能出現的任何!
。該腳本保留TAB,但限制爲每行大約8191字節。它也相對較慢。非常大的文件會變得非常慢。
@echo off
setlocal disableDelayedExpansion
>%1.new (
for /f "delims=" %%A in ('findstr /n "^" %1') do (
set "ln=%%A"
setlocal enableDelayedExpansion
echo(!ln:*:=!
endlocal
)
)
move /y %1.new %1 >nul
最後,這裏是一個混合批次/ JScript的解決方案,它是非常快的,而且沒有我所知道的任何限制。
@if (@X)==(@Y) @end /* Harmless hybrid line that begins a JScript comment
::************ Batch portion ***********
@echo off
<%1 cscript //E:JScript //nologo "%~f0" >%1.new
move /y %1.new %1 >nul
exit /b
************* JScript portion **********/
while (!WScript.StdIn.AtEndOfStream) {
WScript.Stdout.WriteLine(WScript.StdIn.ReadLine());
}
也許你可以在你的機器上找到一些'dos2unix'工具。 –
或'unix2dos'例如從http://sourceforge.net/projects/u2d/ –
我沒有得到如何在命令行中使用這個意大利的東西: – babboon