Войти

Показать полную графическую версию : [решено] код vbs в bat


vngreez@vk
09-04-2017, 17:15
Необходимо вставить vbs код в bat файл
например:
Вместо cscript 123.vbs нужно вызвать участок кода
Как-то так:
cscript :call

:call
Код vbs

Iska
09-04-2017, 17:48
Вместо прямого и незатейливого в лоб «необходимо» озвучьте Вашу задачу, поясните — почему необходимо, и почему необходимо именно так.

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

Iska
09-04-2017, 18:38
Пытаюсь конвертировать в exe »
Кого, зачем… Я же просил: озвучьте задачу, а не выбранное Вами решение.

vngreez@vk
09-04-2017, 21:23
Iska, Совместить скрипты в одном пакетном файле
megaloman, А есть способ без создания файла?

Iska
09-04-2017, 21:33
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");

alpap
11-04-2017, 13:05
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