Войти

Показать полную графическую версию : [решено] Как запустить по очереди 2 сценария с помощью скрипта


BKPB
25-06-2017, 14:24
Есть скрипт, он запускает .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
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
greg zakharov,
Выскакивает ошибка

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

greg zakharov
25-06-2017, 16:16
Ну дык переведите код с JScript в VBScript и будет Вам блэкджек.

BKPB
25-06-2017, 17:00
greg zakharov, Спасибо, что помогаешь, но я вообще в этом ничего не понимаю.
Пожалуйста, помоги это сделать.

greg zakharov
25-06-2017, 17:12
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
Что то ни то, запускается окно 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
Если Вы ничего в этом не понимаете, но получив готовое решение говорите о неработоспособности последнего, чего Вы ожидаете в ответ? Объяснения того, что в итоге приведет к тому с чего все начиналось? Может стоит приложить хоть минимум усилий со своей стороны, изучив хотя бы основы WSH? Иначе, знаете ли, никак не помочь. Если кто захочет Вам разжевать, то ждите, ибо уже надоело помогать копипастерам, не обессутьте.

Iska
25-06-2017, 19:02
не обессутьте. »
Звучит двояко :).

BKPB
25-06-2017, 21:23
Да я не понимаю в написании, но понимаю одно, я нашёл этот скрипт:

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

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

А если я запускаю ваш скрипт, .cmd файлы либо не срабатывают либо не вносят изменения (что именно я не могу сказать) т.к окна не отображаются.
Но зато запускается окно wscript.exe с кракозябрами и висит пока не закроешь.
http://i3.imageban.ru/thumbs/2017.06.25/fbbe94d13a805a6399d3f7befd48ad42.png (http://imageban.ru/show/2017/06/25/fbbe94d13a805a6399d3f7befd48ad42/png)
То есть, тут явно что то не так.

Вот мои файлы:
http://i4.imageban.ru/thumbs/2017.06.25/9169ae79ee06742ddfade8352aead907.png (http://imageban.ru/show/2017/06/25/9169ae79ee06742ddfade8352aead907/png)

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

Iska
25-06-2017, 21:29
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
Методом тыка сделал так:
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
Но срабатывает только со второго раза. »
Ваш скрипт срабатывает с первого раза. Просто в Вашем коде пакетные файлы выполняются практически параллельно.

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

Iska
25-06-2017, 22:45
greg zakharov, «C'est la vie™» :).




© OSzone.net 2001-2012