Показать полную графическую версию : [решено] код vbs в bat
vngreez@vk
09-04-2017, 17:15
Необходимо вставить vbs код в bat файл
например:
Вместо cscript 123.vbs нужно вызвать участок кода
Как-то так:
cscript :call
:call
Код vbs
Вместо прямого и незатейливого в лоб «необходимо» озвучьте Вашу задачу, поясните — почему необходимо, и почему необходимо именно так.
vngreez@vk
09-04-2017, 17:53
Iska, Пытаюсь конвертировать в exe, но не как не хочет прикреплять скрипт vbs
megaloman
09-04-2017, 18:21
@Echo Off
chcp 1251 >nul
Set "VBS=%TMP%\%~nx0.vbs"
Call :DoVBS
GoTo :Eof
:DoVBS
Del "%VBS%" 2>nul
>>"%VBS%" Echo Set WshS = CreateObject("WScript.Shell")
>>"%VBS%" Echo Randomize
>>"%VBS%" Echo Answ = ""
>>"%VBS%" Echo Do While 2 ^<^> WshS.Popup("Угадайте сгенерированное число от 1 до 100", 0, "Будем играться?", 33)
>>"%VBS%" Echo Quest = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
>>"%VBS%" Echo Do
>>"%VBS%" Echo Answ = InputBox("Введите число от 1 до 100", "Угадываем задуманное число")
>>"%VBS%" Echo If Answ = "" Then Exit Do
>>"%VBS%" Echo Answ = CInt(Answ)
>>"%VBS%" Echo Diff = Abs(Answ - Quest)
>>"%VBS%" Echo If Diff = 0 Then
>>"%VBS%" Echo MsgBox CStr(Answ) + " Угадали !"
>>"%VBS%" Echo Exit Do
>>"%VBS%" Echo End If
>>"%VBS%" Echo If Diff ^> 30 Then MsgBox CStr(Answ) + " Хооолодно!!"
>>"%VBS%" Echo If 20 ^< Diff And Diff ^<= 30 Then MsgBox CStr(Answ) + " Тепло !"
>>"%VBS%" Echo If 10 ^< Diff And Diff ^<= 20 Then MsgBox CStr(Answ) + " Горячо!"
>>"%VBS%" Echo If 5 ^< Diff And Diff ^<= 10 Then MsgBox CStr(Answ) + " Почти угадали!"
>>"%VBS%" Echo If 1 ^<= Diff And Diff ^<= 5 Then MsgBox CStr(Answ) + " Еще чуть-чуть !!!"
>>"%VBS%" Echo Loop
>>"%VBS%" Echo If Answ = "" Then Exit Do
>>"%VBS%" Echo Loop
WScript.exe "%VBS%" 2>nul
Del "%VBS%" 2>nul
GoTo :Eof
Пытаюсь конвертировать в exe »
Кого, зачем… Я же просил: озвучьте задачу, а не выбранное Вами решение.
vngreez@vk
09-04-2017, 21:23
Iska, Совместить скрипты в одном пакетном файле
megaloman, А есть способ без создания файла?
vngreez@vk, есть способ — не использовать вообще пакетный файл.
Serguei Kouzmine
11-04-2017, 05:01
144880
Это можно сделать в jscript - но это "нехороший" стиль "программирования" - так в Microsoft писали 15-20 лет назад (может быть поэтому получилось то что получилось?
@set @_E=1; /*
@set @_E=
@echo OFF
cscript /E:jscript %~dpnx0
goto :EOF
*/
var objShell = new ActiveXObject("WScript.shell");;
objShell.Popup("test");
vngreez@vk,
я так понимаю вас, вероятно, однострочник интересует (на примере копипаста буфера обмена в файл с помощью js):
@echo off
call :# "file.txt"
exit
:#
mshta "javascript:var x=clipboardData.getData('text');if(x)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(x);close();">"%~1"
exit /b
vngreez@vk
12-04-2017, 20:28
Спасибо всем за помощь! Решил использовать создание временного файла
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.