CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
-
ruslaw
CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Есть один текстовый файл (file.txt) в котором заключена информация на несколько html-файлов.
Примерно такой:
-------------------------------------------
1
1111111111
2
2222222222
3
3333333333
..........
x
xxxxxxxxxx
-------------------------------------------
как превратить его средствами bat-файлов (если можно) в несколько html-файлов: 1.htm, 2.htm, 3.htm .... x.htm
Примерно такой:
-------------------------------------------
1
1111111111
2
2222222222
3
3333333333
..........
x
xxxxxxxxxx
-------------------------------------------
как превратить его средствами bat-файлов (если можно) в несколько html-файлов: 1.htm, 2.htm, 3.htm .... x.htm
-
Iska
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Код:
Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
P.S. Никаких проверок на содержимое внутри тэга «title» не делается. Посему, ежели там окажется какой-либо запрещённый в именах файлов символ, например «:», скрипт завершится с ошибкой.
Код: Выделить всё
Option Explicit
Dim strSourceFile
Dim objFSO
Dim strContent
Dim objRegExp
Dim objMatch
Dim strNewFileName
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
Set objRegExp = WScript.CreateObject("VBScript.RegExp")
With objRegExp
.Pattern = "[\s\S]*?([\s\S]*?)[\s\S]*?"
.Global = True
End With
If objRegExp.Test(strContent) Then
For Each objMatch In objRegExp.Execute(strContent)
strNewFileName = .BuildPath(.GetParentFolderName(strSourceFile), objMatch.SubMatches(0) & ".htm")
WScript.Echo "Create file [" & strNewFileName & "]."
With .CreateTextFile(strNewFileName)
.WriteLine objMatch.Value
.Close
End With
Next
Else
WScript.Echo "No matches"
End If
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
End If
End With
Else
WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " "
End If
WScript.Quit 0Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
P.S. Никаких проверок на содержимое внутри тэга «title» не делается. Посему, ежели там окажется какой-либо запрещённый в именах файлов символ, например «:», скрипт завершится с ошибкой.
-
Pet20211029
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Фантастика!
Огромнейшее спасибо, работает!
Огромнейшее спасибо, работает!
-
ruslaw
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Фантастика!
Огромнейшее спасибо, работает!
Огромнейшее спасибо, работает!
-
ruslaw
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Цитата Pet20211029:
не перетаскивая его
а к чему его перетаскивать, в рамках задачи:
Код:
что еще надо?
не перетаскивая его
CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
а к чему его перетаскивать, в рамках задачи:
Код:
Код: Выделить всё
more file.txtчто еще надо?
-
alpap
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Писал про скрипт выше, от Iska.
Он пишет:
Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
Как его модифицировать?
Он пишет:
Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
Как его модифицировать?
-
Pet20211029
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Писал про скрипт выше, от Iska.
Он пишет:
Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
Как его модифицировать?
Он пишет:
Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».
Как его модифицировать?
-
Pet20211029
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Код:
Код: Выделить всё
cls
$pathIn = "D:\file.txt"
$pathOut = "D:\htmlDocs"
[Regex]::Matches((gc $pathIn -Raw), ".*?", 0x10).Value|ForEach{$i=1}{
$_|Out-File "$pathOut\$i.htm";$i++
}
-
Pet20211029
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Выдает ошибку Недопустимый знак " Строка 4"
-
alpap
Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?
Pet20211029, это код для PowerShell, если что.