CMD/BAT - txt в csv
-
porokh
CMD/BAT - txt в csv
Здравствуйте!
Есть текстовый файл 190124.txt (имя постоянно будет меняться) содержания 5:4:7:8:4: (будет меняться)
Нужно на выходе получить содержимое файла 5;4;7;8;4; файл должен быть csv (190124.csv)
Как это проще всего реализовать?
Есть текстовый файл 190124.txt (имя постоянно будет меняться) содержания 5:4:7:8:4: (будет меняться)
Нужно на выходе получить содержимое файла 5;4;7;8;4; файл должен быть csv (190124.csv)
Как это проще всего реализовать?
-
porokh
-
YuS_2
Re: CMD/BAT - txt в csv
Для такого я обычно использую блокнот. А если файлов много и их лень открывать -
Notepad++
. Ну а переименование файлов это и вовсе банальная штука (мне, конечно, больше нравится TC, но тут уж, конечно на вкус и цвет).-
porokh
-
porokh
Re: CMD/BAT - txt в csv
Для такого я обычно использую блокнот. А если файлов много и их лень открывать -
Notepad++
. Ну а переименование файлов это и вовсе банальная штука (мне, конечно, больше нравится TC, но тут уж, конечно на вкус и цвет).-
porokh
-
porokh
Re: CMD/BAT - txt в csv
porokh, на WSH:
Скрытый текст
[spoiler]Код: [/spoiler]
Путь к исходному файлу указывается аргументом скрипта (также можно просто перетащить исходный файл на скрипт/ярлык на скрипт в Проводнике). Существующий csv-файл, одноимённый исходному, будет молча перезаписан.
P.S. Если размер Вашего исходного файла составляет более четверти размера физической оперативной памяти — пишите, сменим алгоритм на более щадяший к расходам оперативной памяти.
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
Option Explicit
Dim strSourceFile
Dim objFSO
Dim strContent
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strSourceFile) Then
With objFSO.OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With objFSO.CreateTextFile(objFSO.GetBaseName(strSourceFile) & ".csv", True)
.Write Replace(strContent, ":", ";")
.Close
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ "
WScript.Quit 1
End If
WScript.Quit 0Путь к исходному файлу указывается аргументом скрипта (также можно просто перетащить исходный файл на скрипт/ярлык на скрипт в Проводнике). Существующий csv-файл, одноимённый исходному, будет молча перезаписан.
P.S. Если размер Вашего исходного файла составляет более четверти размера физической оперативной памяти — пишите, сменим алгоритм на более щадяший к расходам оперативной памяти.
-
sov44
Re: CMD/BAT - txt в csv
porokh,
Вот еще вариант
[spoiler]Код: [/spoiler]
Во входной папке обрабатываются файлы по маске, заменяются указанные символы, файлы сохраняются в указанной выходной папке по заданному расширению, исходные файлы перемещаются в архив, чтобы больше их не обрабатывать при последующем запуске батника, так как Вам надо
Цитата porokh:
через планировщик автоматически.
ИМХО, Вы изложили только часть задачи. Что дальше происходит с CSV-файлами?
Вот еще вариант
[spoiler]Код: [/spoiler]
Код: Выделить всё
@Echo Off
Set "File=Z:\Soft_In\*.txt"
Set "BoxOut=Z:\Soft_Out"
Set "BoxArc=Z:\Soft_In\Arc"
Set "ExtOut=csv"
Set "Sym1=:"
Set "Sym2=;"
If Not Exist "%BoxArc%" Md "%BoxArc%"
FOR %%f IN ("%File%") DO (
>"%BoxOut%\%%~nf.%ExtOut%" (FOR /F "usebackq delims=" %%s IN (`2^>nul more "%%f"`) DO (
Set "SS=%%s"
Call Echo %%SS:%Sym1%=%Sym2%%%
))
>nul Move /Y "%%f" "%BoxArc%\"
)Во входной папке обрабатываются файлы по маске, заменяются указанные символы, файлы сохраняются в указанной выходной папке по заданному расширению, исходные файлы перемещаются в архив, чтобы больше их не обрабатывать при последующем запуске батника, так как Вам надо
Цитата porokh:
через планировщик автоматически.
CMD/BAT - txt в csv
ИМХО, Вы изложили только часть задачи. Что дальше происходит с CSV-файлами?