YuS_2, Шаблон регулярки для замены подстроки, в общем случае, в JS, имхо сложноватый. В VBS реплэйс организован проще.
Вот вариант VBS, ориентированный для применения в планировщике.
Во входной папке обрабатываются файлы по маске, заменяются указанные символы, файлы сохраняются в указанной выходной папке по заданному расширению, исходные файлы перемещаются в архив, чтобы больше их не обрабатывать при последующем запуске батника
Код:
BoxIn = "Z:\Soft_In"
FileIn = "^.*\.txt$" ' *.txt
BoxOut = "Z:\Soft_Out"
BoxArc = "Z:\Soft_In\Arc"
ExtOut = "csv"
Str1 = ":"
Str2 = ";"
Set RegMaska = CreateObject("VBScript.RegExp")
RegMaska.Pattern = FileIn
RegMaska.IgnoreCase = True
With CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set Folds = .GetFolder(BoxIn)
If Err.Number <> 0 Then
MsgBox "Ошибка при открытии папки" + vbCrLf + BoxIn + vbCrLf + vbCrLf + Err.Description
WScript.Quit 2
End If
On Error GoTo 0
Set Files = Folds.Files
For Each jf In Files
If RegMaska.Test(jf) Then
On Error Resume Next
Set fIn = .OpenTextFile(jf, 1, False)
If Err.Number <> 0 Then
MsgBox "Ошибка при открытии файла" + vbCrLf + .GetAbsolutePathName(jf) + vbCrLf + vbCrLf + Err.Description
WScript.Quit 2
End If
On Error GoTo 0
Alls = fIn.ReadAll
fIn.Close
NewName = BoxOut + "\" + .GetBaseName(jf) + "." + ExtOut
ArcName = BoxArc + "\" + .GetFileName(jf)
On Error Resume Next
Set fIn = .CreateTextFile(NewName, True)
If Err.Number <> 0 Then
MsgBox "Ошибка при создании файла" + vbCrLf + BoxOut + "\" + .GetBaseName(jf) + "." + ExtOut + vbCrLf + vbCrLf + Err.Description
WScript.Quit 2
End If
On Error GoTo 0
fIn.Write Replace(Alls, Str1, Str2)
fIn.Close
If .FileExists(ArcName) Then fIn=.DeleteFile(ArcName,True)
fIn = .MoveFile(.GetAbsolutePathName(jf), ArcName)
End If
Next
End With
' MsgBox "Скрипт завершен"