使用 VBScript 将文本文件 unix 行结尾替换为 windows

replace text file unix line endings to windows by using VBScripts

文本文件新行是/n。当我用 Notepad 打开它时,它不显示新行。当我用 Notepad++ 打开它时,它显示新行。

我创建了一个 VBscript 来用 \n(unix 行结尾) 中的 \r\n(Windows 行结尾) 替换新行。

该脚本不适用于替换新的 lin。当我将文本从 AAA 替换为 BBB 时它起作用:

什么是替换表达式来替换新行? -谢谢

我可以使用 windows 命令行 CMD-seg 来替换新行吗?

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\Replace_Text.txt",ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "\n", "\r\n")

Set objFile = objFSO.OpenTextFile("c:\Replace_Text.txt",ForWriting)
objFile.WriteLine strNewText

objFile.Close

一个简单的例子 ,基于我最初的评论:

Option Explicit

Const ForReading = 1
Const ForWriting = 2

Dim strTargetFile, objFSO, strText, strNewText, objFile

strTargetFile = "C:\Replace_Text.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile(strTargetFile, ForReading)
strText = objFile.ReadAll
objFile.Close

strNewText = Replace(strText, vbLf, vbCrLf)

Set objFile = objFSO.OpenTextFile(strTargetFile, ForWriting)
objFile.WriteLine strNewText
objFile.Close

WScript.Quit

还有一个简单的例子 ,基于我的第二条评论:

@Echo Off
SetLocal EnableExtensions

Set "TargetFile=C:\Replace_Text.txt"

Set "TempFile=%TargetFile%.tmp"
Copy /Y "%TargetFile%" "%TempFile%"
Type "%TempFile%" | %SystemRoot%\System32\find.exe /V "" 1>"%TargetFile%"
If Not ErrorLevel 1 Del "%TempFile%"