Как создать файл без окна командной строки - PullRequest
1 голос
/ 16 декабря 2008

Я использую модуль WinRAR SFX для создания установки и использую опцию предварительной настройки для запуска некоторых предварительных тестов.

Поскольку wscript может принимать только файл vbs, но не сам скрипт, я сначала запускаю «cmd / c echo {... код сценария ...}> setup.vbs», а затем запускаю «wscript setup.vbs» ». Выполнение первой команды cmd открывает короткое командное окно, и мне бы очень хотелось этого избежать. Я думал об использовании RunDll32 для записи этих данных, но не смог найти подходящий API для использования.

Может кто-нибудь придумать способ обойти его и создать небольшой файл с небольшим текстом VBScript, не открывая окно командной строки?

Большое спасибо,

splintor

Ответы [ 2 ]

2 голосов
/ 16 декабря 2008

Код скрипта уже есть в файле? Если это так,

Вы можете использовать команду TYPE для отправки скрипта в файл:

TYPE [script_file] > setup.vbs

или скопируйте файл сценария:

COPY [script_file] setup.vbs

Если код скрипта находится в теле вашего cmd, вы можете использовать команду START для запуска cmd без окна (флаг /b):

START /B cmd /c echo {...script code...} > setup.vbs
1 голос
/ 26 декабря 2008

Вместо использования cmd /c echo {...script code...} > setup.vbs в качестве шага предварительной настройки, возможно, вы могли бы упаковать VBscript с вашей установкой, которая выполняет предварительные тесты и создает setup.vbs, а затем вызывает setup.vbs для вас. Вы должны поместить это в часть настройки скрипта WinRAR.

Вы можете вызвать другой VBScript из VBScript следующим образом:

Set WSHShell = CreateObject("WScript.Shell") 
WSHShell.Run "wscript d:\setup.vbs, ,True

См. эту ссылку MSDN для синтаксиса команды Run.

...