Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] код vbs в bat (http://forum.oszone.net/showthread.php?t=325770)

vngreez@vk 09-04-2017 17:15 2727696

код vbs в bat
 
Необходимо вставить vbs код в bat файл
например:
Вместо
Код:

cscript 123.vbs
нужно вызвать участок кода
Как-то так:
Код:

cscript :call

 :call
Код vbs


Iska 09-04-2017 17:48 2727711

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

vngreez@vk 09-04-2017 17:53 2727716

Iska, Пытаюсь конвертировать в exe, но не как не хочет прикреплять скрипт vbs

megaloman 09-04-2017 18:21 2727733

Вариант??
Код:

@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 2727741

Цитата:

Цитата vngreez@vk
Пытаюсь конвертировать в exe »

Кого, зачем… Я же просил: озвучьте задачу, а не выбранное Вами решение.

vngreez@vk 09-04-2017 21:23 2727802

Iska, Совместить скрипты в одном пакетном файле
megaloman, А есть способ без создания файла?

Iska 09-04-2017 21:33 2727806

vngreez@vk, есть способ — не использовать вообще пакетный файл.

Serguei Kouzmine 11-04-2017 05:01 2728215

[ATTACH]Файл 144880[/ATTACH]
Это можно сделать в 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 2728308

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 2728748

Спасибо всем за помощь! Решил использовать создание временного файла


Время: 23:53.

Время: 23:53.
© OSzone.net 2001-