Имя пользователя:
Пароль:
 | Правила  

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

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

Ветеран


Автор проектов


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


Конфигурация

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


Как известно можно запустит 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:.......

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 16:10, 20-09-2014

 

Ветеран


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

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


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

Отправлено: 16:56, 20-09-2014 | #2



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

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


Ветеран


Автор проектов


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

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


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

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

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 18:11, 20-09-2014 | #3


Ветеран


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

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


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

Цитата ya158:
Стесняюсь спросить, а по сабжу есть какие-нибудь мысли? »
Я их изложил. По поводу Вашей хотелки: если кто восхочет — сделает Вам реализацию.

Отправлено: 02:31, 21-09-2014 | #4


Ветеран


Автор проектов


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

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


Цитата Iska:
ровно тем же образом можно делать сие из скрипта »
Подскажите, плиз, как это сделать?
Я не специалист в 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

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 20:38, 21-09-2014 | #5


Ветеран


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

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


Цитата ya158:
Но так получается внедрить только один скрипт. »
Один файл, много скриптов: WSH: пишем сценарии в формате WSF.

Отправлено: 15:29, 22-09-2014 | #6


Ветеран


Автор проектов


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

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


Iska,
Спасибо, конечно за ссылку, но я там не увидел батников. Да и честно сказать, я не специалист в VBScript/Jscript,, а тут еще надо разбираться с WSF .
Но самое главное - мне надо записать команды в одну строку, а не создавать ещё один файл. Это даёт возможность записать такую строку в реестре напрямую, а не запускать из реестра какой-либо дополнительный файл.

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 12:17, 23-09-2014 | #7


Ветеран


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

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


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

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

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

Отправлено: 18:49, 23-09-2014 | #8


Ветеран


Автор проектов


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

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


Всё таки с помощью 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));"

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 00:51, 29-09-2014 | #9


Ветеран


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

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


Из письма в PM:
Скрытый текст
Цитата ya158:
Здравствуйте!
Прошу помощи в решении следующей задачи. Мне надо с помощью 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 и нашел этот Ваш пост. В нем решается похожая задача. Я попытался сделать что-то вроде
Код: Выделить весь код
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.

Заранее спасибо.
С уважением, Роман.

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

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

Отправлено: 14:11, 06-12-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - запись ping в файл команда в одну строку... White-Lion Скриптовые языки администрирования Windows 7 06-04-2015 12:03
Delphi - Результат запроса в одну строку mind.beggar Программирование и базы данных 0 01-10-2013 18:14
В одну строку..... Vienna7 Вебмастеру 6 02-07-2013 10:05
VBS/WSH/JS - [решено] Как изменить конкретную строку в текстовом файле с помощью Vbscript neo21 Скриптовые языки администрирования Windows 8 30-10-2011 15:47
CMD/BAT - [решено] как сделать запись в файл в одну строку? mitiya Скриптовые языки администрирования Windows 7 29-04-2010 09:00




 
Переход