Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Command line 命令行中的eol unix到windows。bat批处理_Command Line_Batch File_Converter_Eol - Fatal编程技术网

Command line 命令行中的eol unix到windows。bat批处理

Command line 命令行中的eol unix到windows。bat批处理,command-line,batch-file,converter,eol,Command Line,Batch File,Converter,Eol,我正在尝试使用命令行(批处理文件)在windows xp计算机上从unix将文本文件eol转换为windows格式。我该怎么做?这是什么命令?谢谢。这个简单的脚本速度很快,除了将每个制表符转换为8个空格外,效果非常好。可以使用MORE/T选项修改空格数,但无法保留制表符。将文件名(可选带路径)作为唯一参数传递 @echo off more %1 >%1.new move /y %1.new %1 >nul 所需要做的就是读取和回显每一行。FOR/F命令非常完美,只是它忽略了空行。在

我正在尝试使用命令行(批处理文件)在windows xp计算机上从unix将文本文件eol转换为windows格式。我该怎么做?这是什么命令?谢谢。

这个简单的脚本速度很快,除了将每个制表符转换为8个空格外,效果非常好。可以使用MORE/T选项修改空格数,但无法保留制表符。将文件名(可选带路径)作为唯一参数传递

@echo off
more %1 >%1.new
move /y %1.new %1 >nul
所需要做的就是读取和回显每一行。FOR/F命令非常完美,只是它忽略了空行。在这里,我使用FINDSTR在每一行前面加上行号,后跟一个
,从而保留空行。然后我使用search和replace删除数字前缀。我必须在循环中打开和关闭延迟扩展,以保留任何
。此脚本保留制表符,但限制为每行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
最后,这里是一个混合的batch/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());
}
@if(@X)=(@Y)@end/*开始JScript注释的混合行
::**********批量部分***********
@回音
%1.新
移动/y%1。新建%1>nul
退出/b
*************JScript部分**********/
而(!WScript.StdIn.AtEndOfStream){
WScript.Stdout.WriteLine(WScript.StdIn.ReadLine());
}

也许你可以在你的机器上找到一些
dos2unix
实用程序。或者
unix2dos
例如,我不知道如何在命令行中使用这个意大利语:|