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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] Замена текста из другого файла
ul9 ul9 вне форума

Пользователь


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

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


Всем привет!
Решила снова прибегнуть к помощи форумчан
Попробую описать подробно проблему. Есть папка (test) с файлами и подпапками, содержащими разные файлы. Созданы дополнительно два текстовых файла. Из первого файла берём образец (многострочный текстовый файл), т.е. то, что надо найти в файлах папок test. А второй файл это то, на что нужно заменить найденное. Хотелось бы, чтобы можно было задавать маску поиска (strMask = "*.txt")

Отправлено: 01:58, 23-10-2012

 

Ветеран


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

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


ul9, я никак не пойму, почему Вы так упорно хотите получить три действия (запуск + выбор + ввод) вместо двух (выбор + запуск)? Зачем?

Отправлено: 21:12, 26-10-2012 | #21



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

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

ul9 ul9 вне форума Автор темы

Пользователь


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

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


Потому что я свожу всё в один батник. Запустила ярлык и пошёл процесс. Только попутно выбираешь нужные действия. Делать 15 ярлыков совсем не вариант...

Отправлено: 21:17, 26-10-2012 | #22


Ветеран


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

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


Ну, тогда, раз Вам знаком JScript, напишите себе форму на HTA, в которой уже и будете выбирать, с какими параметрами запускать скрипт.

Отправлено: 21:20, 26-10-2012 | #23

ul9 ul9 вне форума Автор темы

Пользователь


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

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


Нашла вот таких два батника. Теперь осталось определиться.
Код: Выделить весь код
@Echo Off

set /p variable=[Viberite tip 1- red 2- green 3- blue 4- black]
if /I %variable%==1 goto red
if /I %variable%==2 goto green
if /I %variable%==3 goto blue
if /I %variable%==4 goto black
goto error

:red
echo ****************************************************
echo red
echo ****************************************************
pause
:green
echo ****************************************************
echo green
echo ****************************************************
pause
:blue
echo ****************************************************
echo blue
echo ****************************************************
pause
:black
echo ****************************************************
echo black
echo ****************************************************
pause

:error
echo error - try again
pause
goto :start
Код: Выделить весь код
@Echo off
 
:m1
Echo Выберите программу:
Echo.
Echo 1 - Программа 1
Echo 2 - Программа 2
Echo 3 - Программа 3
 
echo.
Set /p choice="Ваш выбор: "
if not defined choice goto m1
if "%choice%"=="1" (start 1.exe)
if "%choice%"=="2" (start 2.exe)
if "%choice%"=="3" (start 3.exe)
Echo.
Echo Не правильно сделан выбор задания
Echo.
Echo.
goto m1
pause >nul

Отправлено: 21:38, 26-10-2012 | #24


Ветеран


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

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


Цитата ul9:
Теперь осталось определиться. »
Примерный вид исполнителя с кнопками на .hta:
читать дальше »
Код: Выделить весь код
<html id="appSampleScriptRunner">
	<head>
		<meta charset="windows-1251">
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
		<meta http-equiv="Content-Language" content="ru">
		<title>Sample Script Runner</title>
		<hta:Application
			Id              = "appSampleScriptRunner"
			Icon            = "%SystemRoot%\System32\wscript.exe"
			ApplicationName = "Sample Script Runner"
			Border          = "normal"
			BorderStyle     = "normal"
			Caption         = "yes"
			ContextMenu     = "no"
			InnerBorder     = "yes"
			MaximizeButton  = "yes"
			MinimizeButton  = "yes"
			Navigable       = "no"
			Scroll          = "auto"
			ScrollFlat      = "no"
			Selection       = "no"
			ShowInTaskbar   = "yes"
			SingleInstance  = "yes"
			SysMenu         = "yes"
			Version         = "1.0"
			WindowState     = "normal"
		/>
		
		<style type="text/css">
			body {
				font: x-small Verdana, Arial, sans-serif;
				color: WindowText;
				background-color: ButtonFace;
			}
		</style>
		
		<script language="VBScript">
			Option Explicit
			
			Sub Window_OnLoad
				Dim arrValues
				Dim elem
				
				Dim objHTMLElement
				
				arrValues = Array( _
					"/FolderForScan:""E:\Песочница\0001"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\01\Найти это.txt"" /FileReplaceBy:""E:\Песочница\01\заменить этим.txt""", _
					"/FolderForScan:""E:\Песочница\0002"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\02\Найти это.txt"" /FileReplaceBy:""E:\Песочница\02\заменить этим.txt""", _
					"/FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt""" _
				)
				
				For Each elem In arrValues
					Set objHTMLElement = document.createElement("input")
					
					With objHTMLElement
						.type            = "button"
						.style.textAlign = "left"
						.value           = "cscript.exe //nologo ""c:\My Scripts\Script.vbs""" & Replace(" " & elem, " /", vbCrLf & vbTab & " /")
						
						.onclick         = GetRef("OnClickButtonRunScript")
					End With
					
					document.body.appendChild objHTMLElement
					
					Set objHTMLElement = document.createElement("br")
					document.body.appendChild objHTMLElement
				Next
				
				With window
					.resizeTo tagBody.scrollWidth + 25, tagBody.scrollHeight + 32
					.moveTo (.screen.availWidth - tagBody.offsetWidth) \ 2, (.screen.availHeight - tagBody.offsetHeight) \ 2
				End With
			End Sub
			
			Sub OnClickButtonRunScript()
				With CreateObject("WScript.Shell")
					MsgBox Replace(window.event.srcElement.value, vbCrLf & vbTab & " /", " /")
					'.Run Replace(window.event.srcElement.value, vbCrLf & vbTab & " /", " /")
				End With
			End Sub
		</script>
	</head>
	
	<body id="tagBody" scroll="auto">
	</body>
	
	<script language="VBScript">
		Option Explicit
		
	</script>
</html>
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:50, 26-10-2012 | #25

ul9 ul9 вне форума Автор темы

Пользователь


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

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


Цитата Iska:
Примерный вид исполнителя с кнопками на .hta: »
Ого, а как это использовать? Первый раз такое вижу

Отправлено: 23:09, 26-10-2012 | #26


Ветеран


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

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


Откройте Блокнот. Скопируйте код и вставьте его в Блокнот. Сохраните в файл с расширением «.hta». Сделайте двойной щелчок в Проводнике по созданному файлу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:22, 26-10-2012 | #27

ul9 ul9 вне форума Автор темы

Пользователь


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

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


Получилось.
Редактировать только тут?
Код: Выделить весь код
Dim objHTMLElement	
arrValues = Array( _
	"/FolderForScan:""E:\Песочница\0001"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\01\Найти это.txt"" /FileReplaceBy:""E:\Песочница\01\заменить этим.txt""", _
	"/FolderForScan:""E:\Песочница\0002"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\02\Найти это.txt"" /FileReplaceBy:""E:\Песочница\02\заменить этим.txt""", _
	"/FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt""" _
)
А можно выводить не пути, а названия в кнопках(Красный, Зелёный и т.д.)?

А ещё лучше не названия, а просто пустые цветные кнопки (#00FF00, #FFFFFF...)

Отправлено: 23:30, 26-10-2012 | #28


Ветеран


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

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


Цитата ul9:
Редактировать только тут… »
Да.

Цитата ul9:
А можно выводить не пути, а названия в кнопках(Красный, Зелёный и т.д.)? »
Для данного алгоритма — нет. Тут название фактически является командной строкой для исполнения. Но можно сменить алгоритм.

Цитата ul9:
А ещё лучше не названия, а просто пустые цветные кнопки (#00FF00, #FFFFFF...) »
Пробуйте другой алгоритм:
читать дальше »
Код: Выделить весь код
<html id="appSampleScriptRunner">
	<head>
		<meta charset="windows-1251">
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
		<meta http-equiv="Content-Language" content="ru">
		<title>Sample Script Runner</title>
		<hta:Application
			Id              = "appSampleScriptRunner"
			Icon            = "%SystemRoot%\System32\wscript.exe"
			ApplicationName = "Sample Script Runner"
			Border          = "normal"
			BorderStyle     = "normal"
			Caption         = "yes"
			ContextMenu     = "no"
			InnerBorder     = "yes"
			MaximizeButton  = "yes"
			MinimizeButton  = "yes"
			Navigable       = "no"
			Scroll          = "auto"
			ScrollFlat      = "no"
			Selection       = "no"
			ShowInTaskbar   = "yes"
			SingleInstance  = "yes"
			SysMenu         = "yes"
			Version         = "1.1"
			WindowState     = "normal"
		/>
		
		<style type="text/css">
			body {
				font: x-small Verdana, Arial, sans-serif;
				color: WindowText;
				background-color: ButtonFace;
			}
		</style>
		
		<script language="VBScript">
			Option Explicit
			
			Dim objDictionary
			
			'==========================================================================
			Sub Window_OnLoad
				Dim strKey
				Dim objHTMLElement
				
				For Each strKey In objDictionary.Keys
					Set objHTMLElement = document.createElement("div")
					
					With objHTMLElement
						.id    = strKey
						.title = Replace(objDictionary.Item(strKey), " /", vbCrLf & "   /")
						
						With .style
							.textAlign       = "left"
							
							.borderWidth     = "thick"
							.borderStyle     = "outset"
							
							.margin          = "0.5em"
							.padding         = "0.5em"
							
							.backgroundColor = strKey
						End With
						
						.onclick     = GetRef("OnClickButtonRunScript")
						
						.onMouseOut  = GetRef("OnMouseOut")
						.onMouseOver = GetRef("OnMouseOver")
					End With
					
					document.body.appendChild objHTMLElement
					
					objHTMLElement.appendChild document.createTextNode(objDictionary.Item(strKey))
				Next
				
				With window
					.resizeTo tagBody.scrollWidth + 25, tagBody.scrollHeight + 32
					.moveTo (.screen.availWidth - tagBody.offsetWidth) \ 2, (.screen.availHeight - tagBody.offsetHeight) \ 2
				End With
			End Sub
			'==========================================================================
			
			'==========================================================================
			Sub OnClickButtonRunScript()
				With CreateObject("WScript.Shell")
					MsgBox objDictionary.Item(window.event.srcElement.id)
					'.Run objDictionary.Item(window.event.srcElement.id)
				End With
			End Sub
			'==========================================================================
			
			'==========================================================================
			Sub OnMouseOut()
				With window.event.srcElement
					.style.color  = "WindowText"
				End With
			End Sub
			'==========================================================================
			
			'==========================================================================
			Sub OnMouseOver()
				With window.event.srcElement
					.style.color  = "Yellow"
				End With
			End Sub
			'==========================================================================
			
			Set objDictionary = CreateObject("Scripting.Dictionary")
			
			With objDictionary
				.Add "Red",           "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0001"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\01\Найти это.txt"" /FileReplaceBy:""E:\Песочница\01\заменить этим.txt"""
				.Add "Green",         "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0002"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\02\Найти это.txt"" /FileReplaceBy:""E:\Песочница\02\заменить этим.txt"""
				.Add "Blue",          "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt"""
				.Add "SpringGreen",   "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt"""
				.Add "DarkSlateBlue", "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt"""
				.Add "#CFCFF0",       "cscript.exe //nologo ""c:\My Scripts\Script.vbs"" /FolderForScan:""E:\Песочница\0003"" /FileExtension:""htm"" /FileWhatFind:""E:\Песочница\03\Найти это.txt"" /FileReplaceBy:""E:\Песочница\03\заменить этим.txt"""
			End With
		</script>
	</head>
	
	<body id="tagBody" scroll="auto">
	</body>
</html>

Как и в предыдущем, для исполнения — закомментировать «MsgBox»:
Код: Выделить весь код
					MsgBox objDictionary.Item(window.event.srcElement.id)
и раскомментировать «.Run»:
Код: Выделить весь код
					'.Run objDictionary.Item(window.event.srcElement.id)
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:22, 27-10-2012 | #29

ul9 ul9 вне форума Автор темы

Пользователь


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

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


Ага, спасибо. Мы уже почти приблизились к моей затее

Вот так бы было просто замечательно

Отправлено: 01:43, 27-10-2012 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Замена текста в txt Starter1 Скриптовые языки администрирования Windows 17 04-08-2022 18:26
CMD/BAT - [решено] Поиск и замена текста ajakzs Скриптовые языки администрирования Windows 18 08-08-2013 16:10
2007 - [решено] Word вставка одного текста вместо другого 3DpacTe Microsoft Office (Word, Excel, Outlook и т.д.) 5 11-05-2012 14:36
.NET - [решено] Получение Текста Из Edita Другого Приложения ( C# ) LilLoco Программирование и базы данных 1 28-06-2010 13:12
Офис и Текст - Замена текста Котяра Программное обеспечение Windows 1 29-09-2008 13:51




 
Переход