Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Добавление строки после каждой строки с подстановкой значения в имя файла

Ответить
Настройки темы
CMD/BAT - [решено] Добавление строки после каждой строки с подстановкой значения в имя файла

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: d22cva
Дата: 04-01-2015
Имею программу передач такого типа в текстовом файле (исходный файл)

00:00 День в календаре 1612
00:05 Актуальное интервью 1512
00:20 Экстренная служба 1512
00:25 Прогноз погоды вечер 1512
00:30 Куда обратиться 1512
00:35 Интернет-обзор 1512

Мне необходимо добавить строку movie 0:00:09.04 [0.10] E:\Ролики\День_в_календаре. avi после каждой строки так чтобы имя предыдущей строки подставлялось в имя файла в адресе пути("Е:\Ролики\..."), так это все должно выглядеть:

00:00 День в календаре 1612
movie 0:00:09.04 [0.10] E:\Ролики\День в календаре 1612.avi
00:05 Актуальное интервью 1512
movie 0:00:09.04 [0.10] E:\Ролики\Актуальное интервью 1512.avi
00:20 Экстренная служба 1512
movie 0:00:09.04 [0.10] E:\Ролики\Экстренная служба 1512.avi
00:25 Прогноз погоды вечер 1512
movie 0:00:09.04 [0.10] E:\Ролики\Прогноз погоды вечер 1512.avi
00:30 Куда обратиться 1512
movie 0:00:09.04 [0.10] E:\Ролики\Куда обратиться 1512.avi
00:35 Интернет-обзор 1512
movie 0:00:09.04 [0.10] E:\Ролики\Интернет-обзор 1512.avi

Как это можно релизовать? Если не трубно, то напишите подробно.

Отправлено: 16:37, 04-01-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата d22cva:
такого типа в текстовом файле »
Упакуйте образец текстового файла в архив. Архив выложите на RGhost. Ссылку — сюда.

Отправлено: 16:58, 04-01-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Исходный файл http://rghost.ru/60133388

Отправлено: 17:14, 04-01-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


d22cva, давайте попробуем на WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strPattern

Dim strSourceFile
Dim strTempFileName

Dim strContent
Dim strLine


strPattern = "movie 0:00:09.04 [0.10] E:\Ролики\[:|*?].avi"

If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strSourceFile) Then
			strTempFileName = GetTemporaryName()
			
			With .OpenTextFile(strSourceFile)
				strContent = .ReadAll()
				.Close
			End With
			
			With .CreateTextFile(strTempFileName, True)
				For Each strLine In Split(strContent, vbCrLf)
					.WriteLine strLine
					
					If Len(Trim(strLine)) <> 0 Then
						.WriteLine Replace(strPattern, "[:|*?]", Split(strLine, " ", 2)(1))
					End If
				Next
				
				.Close
			End With
			
			.CopyFile strSourceFile, .BuildPath(.GetParentFolderName(strSourceFile), .GetBaseName(strSourceFile) & ".bak"), True
			.CopyFile strTempFileName, strSourceFile, True
			.DeleteFile strTempFileName, True
		Else
			WScript.Echo "Can't find source file [" & strSourceFile & "]."
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage:"
	WScript.Quit 1
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
	Const TemporaryFolder = 2
	
	Dim strTempName
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		Do
			strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
		Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
	End With
	
	GetTemporaryName = strTempName
End Function
'=============================================================================

Сохраните код в файл с расширением «.vbs». Целевой файл указывается аргументом командной строки скрипта. Также можно просто перетащить целевой файл на скрипт из Проводника.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:49, 04-01-2015 | #4


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Спасибо огромное!!! Почти идеально! А можно сделать так чтобы программа вставляла сначала в начало каждой строки comment 0 , а потом выполнялась ваша программа???
Пример с comment 0

comment 0 00:00 День в календаре 1612
comment 0 00:05 Актуальное интервью 1512
comment 0 00:20 Экстренная служба 1512
comment 0 00:25 Прогноз погоды вечер 1512
comment 0 00:30 Куда обратиться 1512
comment 0 00:35 Интернет-обзор 1512

А потом подставлялась каждая строка как в предыдущем посте, чтоб получилось в итоге так
Скрытый текст

comment 0 00:00 День в календаре 1612
movie 0:00:09.04 [0.10] E:\Ролики\День в календаре 1612.avi
comment 0 00:05 Актуальное интервью 1512
movie 0:00:09.04 [0.10] E:\Ролики\Актуальное интервью 1512.avi
comment 0 00:20 Экстренная служба 1512
movie 0:00:09.04 [0.10] E:\Ролики\Экстренная служба 1512.avi
comment 0 00:25 Прогноз погоды вечер 1512
movie 0:00:09.04 [0.10] E:\Ролики\Прогноз погоды вечер 1512.avi
comment 0 00:30 Куда обратиться 1512
movie 0:00:09.04 [0.10] E:\Ролики\Куда обратиться 1512.avi
comment 0 00:35 Интернет-обзор 1512
movie 0:00:09.04 [0.10] E:\Ролики\Интернет-обзор 1512.avi

Отправлено: 06:43, 05-01-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата d22cva:
вставляла сначала в начало каждой строки comment 0 , а потом выполнялась ваша программа??? »
Зачем так?

Замените:
Код: Выделить весь код
.WriteLine strLine
на:
Код: Выделить весь код
.WriteLine "comment 0 " & strLine
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:50, 05-01-2015 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Добавление строки после каждой строки с подстановкой значения в имя файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой. Mikhael2011 Скриптовые языки администрирования Windows 17 16-03-2017 03:37
PowerShell - [решено] цикл для каждой строки из файла rudimko Скриптовые языки администрирования Windows 15 25-10-2012 09:46
Разное - Добавление имени файла в начало каждой строки. CkapHa Программирование и базы данных 2 02-01-2012 22:13
CMD/BAT - Смена кодировки текстового файла, поиск строки и разбор значения profcom Скриптовые языки администрирования Windows 0 10-11-2011 20:20
CMD/BAT - [решено] Имя файла из строки копируемого файла. Seryoga204 Скриптовые языки администрирования Windows 20 16-03-2011 21:15




 
Переход