CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Аватара пользователя
ruslaw

CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение ruslaw »

Есть один текстовый файл (file.txt) в котором заключена информация на несколько html-файлов.

Примерно такой:

-------------------------------------------



1



1111111111







2



2222222222







3



3333333333





..........



x



xxxxxxxxxx





-------------------------------------------

как превратить его средствами bat-файлов (если можно) в несколько html-файлов: 1.htm, 2.htm, 3.htm .... x.htm
Аватара пользователя
Iska

Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение Iska »

Код:

Код: Выделить всё

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 - [решено] можно ли батником разрезать файл по шаблону?

Сообщение Pet20211029 »

Фантастика!

Огромнейшее спасибо, работает!
Аватара пользователя
ruslaw

Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение ruslaw »

Цитата Pet20211029:



не перетаскивая его
CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?




а к чему его перетаскивать, в рамках задачи:



Код:

Код: Выделить всё

more file.txt

что еще надо?
Аватара пользователя
alpap

Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение alpap »

Писал про скрипт выше, от Iska.

Он пишет:

Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».

Как его модифицировать?
Аватара пользователя
Pet20211029

Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение Pet20211029 »

Писал про скрипт выше, от Iska.

Он пишет:

Сохраните код в файл с расширением «.vbs», затем просто перетащите на него Ваш «один текстовый файл (file.txt)».

Как его модифицировать?
Аватара пользователя
Pet20211029

Re: CMD/BAT - [решено] можно ли батником разрезать файл по шаблону?

Сообщение Pet20211029 »

Код:

Код: Выделить всё

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 - [решено] можно ли батником разрезать файл по шаблону?

Сообщение Pet20211029 »

Выдает ошибку Недопустимый знак " Строка 4"
Ответить

Вернуться в «Скриптовые языки администрирования Windows»