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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Как запустить по очереди 2 сценария с помощью скрипта (http://forum.oszone.net/showthread.php?t=327862)

BKPB 25-06-2017 14:24 2747172

Как запустить по очереди 2 сценария с помощью скрипта
 
Есть скрипт, он запускает .cmd, не отображая окон сценария.
Скрытый текст
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "1.cmd" & Chr(34), 0
Set WshShell = Nothing


Как сделать, чтобы он запускал два .cmd по очереди. (1.cmd и 2.cmd).

greg zakharov 25-06-2017 15:20 2747182

BKPB, здесь не Run нужно использовать, а Exec, чтобы в stdin можно было бы запилить вызов командных сценариев.
Код:

(function() {
  with (new ActiveXObject('WScript.Shell')) {
    var exe = Exec('cmd /q /k echo off');
    exe.StdIn.WriteLine('1.cmd');
    exe.StdIn.WriteLine('2.cmd');
    exe.StdIn.WriteLine('exit');

    var res = exe.StdOut.ReadAll();
    WScript.echo(res);
  }
})();


BKPB 25-06-2017 15:43 2747184

greg zakharov,
Выскакивает ошибка

Скрытый текст
Сценарий: С: \Users\Администратор ПК\Desktop\Setup.vbs
Строка: 1
Символ: 1
Ошибка: Предполагается наличие инструкции
Код: 800А0400
Источник: Ошибка компиляции Microsoft VBScript

greg zakharov 25-06-2017 16:16 2747191

Ну дык переведите код с JScript в VBScript и будет Вам блэкджек.

BKPB 25-06-2017 17:00 2747199

greg zakharov, Спасибо, что помогаешь, но я вообще в этом ничего не понимаю.
Пожалуйста, помоги это сделать.

greg zakharov 25-06-2017 17:12 2747202

Код:

Dim objWShell : Set objWShell = CreateObject("WScript.Shell")
Dim objExec : Set objExec = objWShell.Exec("cmd /q /k echo off")
objExec.StdIn.WriteLine("1.cmd")
objExec.StdIn.WriteLine("2.cmd")
objExec.StdIn.WriteLine("exit")
WScript.Echo objExec.StdOut.ReadAll
Set objWShell = Nothing

С Вас сто рублей :)

BKPB 25-06-2017 17:38 2747209

Что то ни то, запускается окно wscript.exe и висит пока не закроешь.
А файлы .cmd не выполняются.
Скрытый текст
---------------------------
Windows Script Host
---------------------------


“бЇҐе. ‚«*¤Ґ«м楬 д*©«* (Ё«Ё Ї*ЇЄЁ) "C:\Windows\System32\drivers\etc\hosts" пў«пҐвбп Ї®«м§®ў*⥫м "COMPUTER\Ђ¤¬Ё*Ёбва*в®а ЏЉ".




Џђ€Њ…—ЂЌ€…. CACLS бзЁв*Ґвбп гбв*ॢ襩, ४®¬Ґ*¤гҐвбп ЁбЇ®«м§®ў*вм ICACLS.





Џа®б¬®ва Ё Ё§¬Ґ*Ґ*ЁҐ бЇЁбЄ®ў гЇа*ў«Ґ*Ёп ¤®бвгЇ®¬ (ACL) Є д*©«*¬





CACLS Ё¬п_д*©«* [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G Ё¬п:¤®бвгЇ]


[/R Ё¬п [...]] [/P Ё¬п:¤®бвгЇ [...]] [/D Ё¬п [...]]


Ё¬п_д*©«* Џа®б¬®ва бЇЁбЄ®ў гЇа*ў«Ґ*Ёп ¤®бвгЇ®¬.


/T €§¬Ґ*Ґ*ЁҐ бЇЁбЄ®ў гЇа*ў«Ґ*Ёп ¤®бвгЇ®¬ ¤«п гЄ*§***ле д*©«®ў


ў ⥪г饬 Є*в*«®ЈҐ Ё ў«®¦Ґ**ле Є*в*«®Ј*е.


/L ђ*Ў®в* б б*¬®© бЁ¬ў®«ЁзҐбЄ®© ббл«Є®©, * *Ґ б ®ЎкҐЄв®¬.


/M €§¬Ґ*Ґ*ЁҐ ACL ⮬®ў, Ї®¤Є«озҐ**ле Є Є*в*«®Јг.


/S Ћв®Ўа*¦Ґ*ЁҐ бва®ЄЁ SDDL ¤«п DACL.


/S:SDDL ‡*¬Ґ** ACL ** гЄ*§***лҐ ў бва®ЄҐ SDDL


(*Ґ ЁбЇ®«м§гҐвбп б Є«оз*¬Ё /E, /G, /R, /P Ё /D).


/E €§¬Ґ*Ґ*ЁҐ бЇЁбЄ* гЇа*ў«Ґ*Ёп ¤®бвгЇ®¬ ў¬Ґбв® ҐЈ® §*¬Ґ*л.


/C Џа®¤®«¦Ґ*ЁҐ ЇаЁ ®иЁЎЄ*е ®вЄ*§* ў ¤®бвгЇҐ.


/G Ё¬п:¤®бвгЇ ђ*§аҐиҐ*Ёп ¤«п гЄ*§***ле Ї®«м§®ў*⥫Ґ©.


„®бвгЇ: R - звҐ*ЁҐ


W - §*ЇЁбм


C - Ё§¬Ґ*Ґ*ЁҐ (§*ЇЁбм)


F - Ї®«*л© ¤®бвгЇ


/R Ё¬п Ћв§лў а*§аҐиҐ*Ё© ¤«п Ї®«м§®ў*⥫п (в®«мЄ® ў¬Ґб⥠б /E).


/P Ё¬п:¤®бвгЇ ‡*¬Ґ** а*§аҐиҐ*Ё© гЄ*§***®Ј® Ї®«м§®ў*⥫п.


„®бвгЇ: N - *Ґв


R - звҐ*ЁҐ


W - §*ЇЁбм


C - Ё§¬Ґ*Ґ*ЁҐ (§*ЇЁбм)


F - Ї®«*л© ¤®бвгЇ


/D Ё¬п ‡*ЇаҐв ** ¤®бвгЇ Ї®«м§®ў*⥫п.


„«п ўлЎ®а* *ҐбЄ®«мЄЁе д*©«®ў ЁбЇ®«м§говбп Ї®¤бв**®ў®з*лҐ §**ЄЁ.


‚ Є®¬**¤Ґ ¬®¦*® гЄ*§*вм *ҐбЄ®«мЄ® Ї®«м§®ў*⥫Ґ©.





‘®Єа*йҐ*Ёп:


CI - **б«Ґ¤®ў**ЁҐ Є®*⥩*Ґа*¬Ё.


ACE **б«Ґ¤гҐвбп Є*в*«®Ј*¬Ё.


OI - **б«Ґ¤®ў**ЁҐ ®ЎкҐЄв*¬Ё.


ACE **б«Ґ¤гҐвбп д*©«*¬Ё.


IO - в®«мЄ® **б«Ґ¤®ў**ЁҐ.


ACE *Ґ ЇаЁ¬Ґ*пҐвбп Є ⥪г饬г д*©«г Ё«Ё Є*в*«®Јг.


ID - **б«Ґ¤®ў**ЁҐ.


ACE **б«Ґ¤гҐвбп ®в ACL தЁвҐ«мбЄ®Ј® Є*в*«®Ј*.



---------------------------
ОК
---------------------------

greg zakharov 25-06-2017 18:35 2747225

Если Вы ничего в этом не понимаете, но получив готовое решение говорите о неработоспособности последнего, чего Вы ожидаете в ответ? Объяснения того, что в итоге приведет к тому с чего все начиналось? Может стоит приложить хоть минимум усилий со своей стороны, изучив хотя бы основы WSH? Иначе, знаете ли, никак не помочь. Если кто захочет Вам разжевать, то ждите, ибо уже надоело помогать копипастерам, не обессутьте.

Iska 25-06-2017 19:02 2747232

Цитата:

Цитата greg zakharov
не обессутьте. »

Звучит двояко :).

BKPB 25-06-2017 21:23 2747272

Да я не понимаю в написании, но понимаю одно, я нашёл этот скрипт:

Скрытый текст
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "1.cmd" & Chr(34), 0
Set WshShell = Nothing


и запустив его он выполняет то, для чего и написан. (Запускает 1.cmd и скрывает окна этого .cmd)

А если я запускаю ваш скрипт, .cmd файлы либо не срабатывают либо не вносят изменения (что именно я не могу сказать) т.к окна не отображаются.
Но зато запускается окно wscript.exe с кракозябрами и висит пока не закроешь.

То есть, тут явно что то не так.

Вот мои файлы:
[IMG][/IMG]

И не злитесь по пустякам.
Подожду может кто ещё попробует помочь.
Я и подумать не мог что это сложно сделать.

Iska 25-06-2017 21:29 2747275

Код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "1.cmd" & Chr(34), 0, True
WshShell.Run chr(34) & "2.cmd" & Chr(34), 0, True
Set WshShell = Nothing


BKPB 25-06-2017 21:56 2747281

Методом тыка сделал так:
Скрытый текст
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "1.cmd" & Chr(34), 0
WshShell.Run chr(34) & "2.cmd" & Chr(34), 0
Set WshShell = Nothing


Но срабатывает только со второго раза.
То есть запустив скрипт первый раз, выполняется 1.cmd
Запустив скрипт второй раз, выполняется 2.cmd

Iska, Сейчас попробую.

Iska, Спасибо ОГРОМНОЕ. Работает как часы.

Iska 25-06-2017 22:04 2747285

Цитата:

Цитата BKPB
Но срабатывает только со второго раза. »

Ваш скрипт срабатывает с первого раза. Просто в Вашем коде пакетные файлы выполняются практически параллельно.

greg zakharov 25-06-2017 22:21 2747290

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

Iska 25-06-2017 22:45 2747298

greg zakharov, «C'est la vie™» :).


Время: 17:09.

Время: 17:09.
© OSzone.net 2001-