VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

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

VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение ya158 »

Как известно можно запустит VBScript/Jscript из батника через mshta. При этом всё записывается в одну строку. Например



Код:

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

mshta.exe vbscript:close(CreateObject("WScript.Shell").Popup("MessageString",0,"Title",16))

Как аналогичным образом добавить/удалить программу на taskbar в Win7/8?

Пример скрипта
http://forum.ru-board.com/topic.cgi?...&start=3940#21
.

Мне надо преобразовать его в вид mshta.exe vbscript:.......
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение Iska »

ya158, ответ на главный вопрос как обычно остался скромно обойдён вниманием: зачем, собственно?
Аватара пользователя
ya158

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение ya158 »

Iska,

Ну, например, чтобы не делать отдельный vbs-скрипт, а закреплять программу на таскбаре из батника или SFX-архива.



Стесняюсь спросить, а по сабжу есть какие-нибудь мысли?
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение Iska »

Цитата ya158:



Ну, например, чтобы не делать отдельный vbs-скрипт, а закреплять программу на таскбаре из батника или SFX-архива.
VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку




ya158, ровно тем же образом можно делать сие из скрипта, без применения промежуточного пакетного файла или самораспаковывающегося архива.




Цитата ya158:



Стесняюсь спросить, а по сабжу есть какие-нибудь мысли?
VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку




Я их изложил. По поводу Вашей хотелки: если кто восхочет — сделает Вам реализацию.
Аватара пользователя
ya158

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение ya158 »

Цитата Iska:



ровно тем же образом можно делать сие из скрипта
VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку




Подскажите, плиз, как это сделать?

Я не специалист в VBScript/Jscript, поэтому использую батники. Помимо этого батник можно записать в одну строку => можно не создавать отдельный файл. Я в курсе, что можно сделать комбинированный скрипт вида:



Код:

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

@set @x=0 /*
@echo off
cmdow @ /HID
Батник
wscript  //nologo /e:jscript "%~f0"
Батник
*/
VBScript

Но так получается внедрить только один скрипт. При помощи же mshta можно в батник вставить различные VBScript/Jscript. Вот несколько примеров
http://www.dostips.com/forum/viewtopic.php?f=3&t=5311
Аватара пользователя
ya158

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение ya158 »

Iska,

Спасибо, конечно за ссылку, но я там не увидел батников. Да и честно сказать, я не специалист в VBScript/Jscript,, а тут еще надо разбираться с WSF Изображение.

Но самое главное - мне надо записать команды в одну строку, а не создавать ещё один файл. Это даёт возможность записать такую строку в реестре напрямую, а не запускать из реестра какой-либо дополнительный файл.
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение Iska »

ya158, Вы спросили, как сие можно сделать, я Вам показал — как: написать сценарий в формате .wsf, один-единственный файл, в котором может содержаться произвольное количество заданий на VBScript/JScript.




Цитата ya158:



Это даёт возможность записать такую строку в реестре напрямую
VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку




1. Не вижу никаких препятствий для того, чтобы делать сие из .wsf.

2. Напрямую — это сказки, дружище. Особенно в реестр. Попробуйте записать для исполнения в реестр что-нибудь наподобие такого:
CMD/BAT: получение формата дата-время для имени файла
или такого:
CMD/BAT: использование стандартных GUI-диалогов выбора папки и файла
. Куча счастья и радости в процессе будет обеспечена, гарантирую.



И разбираться с VBScript/JScript Вам придётся. А как же иначе?! Ведь именно их Вы собираетесь пользовать в «mshta.exe».
Аватара пользователя
ya158

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение ya158 »

Всё таки с помощью
wrace
я получил то, что хотел.

Выложу здесь, может кому пригодится.



VBScript



Код:

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

mshta.exe vbscript:Execute("dim exe: exe=""%WinDir%\explorer.exe"":Set fs = CreateObject(""scripting.Filesystemobject""):Set colVerbs = CreateObject(""Shell.Application"").Namespace(fs.GetParentFolderName(exe)).ParseName(fs.GetFileName(exe)).Verbs:For Each objVerb in colVerbs: If Mid(Replace(objVerb.name, ""&"", """"),3,7) = ""крепить"" Then objVerb.DoIt: exe = objVerb.name End If: Next:close")

JavaScript



Код:

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

mshta.exe "javascript:var fs = new ActiveXObject('Scripting.FileSystemObject'); var exe='C:\\Windows\\explorer.exe'; var colVerbs = new ActiveXObject('Shell.Application').Namespace(fs.GetParentFolderName(exe)).ParseName(fs.GetFileName(exe)).Verbs(); var k=-1; for(var i=colVerbs.Count; --i>=0;){  var objVerb=colVerbs.Item(i).name.replace('&', ''); if (objVerb.substr(2,7) == 'крепить'){ k=i; colVerbs.Item(k).DoIt(); } } close(new ActiveXObject('WScript.Shell').Popup(k,0,'Title',16));"
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Запись VBScript/Jscript в одну строку

Сообщение Iska »

Из письма в PM:



Скрытый текст

[spoiler]Цитата ya158:[/spoiler]



Здравствуйте!

Прошу помощи в решении следующей задачи. Мне надо с помощью mshta считать текст из текстового файла и записать в реестр. Текстовый файл состоит из нескольких строк. В принципе работает следующий скрипт:



Код:

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

mshta vbscript:close(CreateObject("WScript.Shell").RegWrite("HKLM\New\Param",CreateObject("Scripting.FileSystemObject").GetFile("c:\1.txt").OpenAsTextStream(1).ReadAll(),"REG_SZ"))

Но заковыка в том, что c:\1.txt в кодировке cp866. Поэтому в HKLM\New\Param попадают кракозябры.

Поискал как с помощью VBSscript перекодировать файл из cp866 в ANSI и нашел
CMD/BAT - кодировка в файле вывода
Ваш пост. В нем решается похожая задача. Я попытался сделать что-то вроде



Код:

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

mshta vbscript:execute("set f=CreateObject(""Scripting.FileSystemObject""):set a=(CreateObject(""ADODB.Stream"")):a.Type=2:a.Mode=3:a.Open():a.Charset=""windows-1251"": a.LoadFromFile(""C:\1.txt""):T=a.ReadText():a.Position=0:a.Charset=""cp866"":a.WriteText(T):a.SaveToFile(""C:\UTF-8.txt""):a.Close():close")

Но вылетает ошибка:



Настройки безопасности данного компьютера запрещают доступ к источнику данных в другом домене



Прошу помощи в написании рабочего скрипта на VBScript.



Заранее спасибо.

С уважением, Роман.









Коллега, я уже излагал Вам свои мысли на тему «как почесать задней левой ногой за правым ухом» в данной теме выше.



С тех пор ничего не изменилось.
Ответить

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