В .vbs у меня есть что-то вроде

   Dim sh
   Set sh = WScript.CreateObject("WScript.Shell")
   'run conf
   sh.run "cmd /K php -c php.ini -f some_path\runer\run.php & pause",0,false
   'Navigate to the nginx folder to run server
    sh.run "cmd /K start nginx & exit", 0, false
    Set sh = Nothing

Этот код работает нормально.

Но я хочу выполнить sh.run "cmd /K start nginx & exit", 0, false это после полного завершения выполнения sh.run "cmd /K php -c php.ini -f some_path\runer\run.php & pause",0,false этой команды, то есть после завершения задачи run.php я хочу run nginx. пожалуйста, ответьте мне, если это возможно. Спасибо

0
Masum Nishat 18 Май 2014 в 11:52

4 ответа

Лучший ответ

Использовать этот,

Dim sh
Set sh = WScript.CreateObject("WScript.Shell")
'run conf
sh.run "cmd /K php -c php.ini -f some_path\runer\run.php & exit",1,true
'Navigate to the nginx folder to run server
sh.run "cmd /K start nginx & exit", 0, false
Set sh = Nothing
4
user1487328user1487328 21 Май 2014 в 09:08

Вот документация для вашего метода. Вы говорите ему не ждать. Почему-то вам не пришло в голову читать документацию?

Запускает программу в новом процессе.

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 

Объект аргументов Объект WshShell.

StrCommand Строковое значение, указывающее командную строку, которую вы хотите запустить. Вы должны включить любые параметры, которые хотите передать исполняемому файлу.

IntWindowStyle Необязательно. Целочисленное значение, указывающее внешний вид окна программы. Обратите внимание, что не все программы используют эту информацию.

BWaitOnReturn Необязательно. Логическое значение, указывающее, должен ли сценарий дождаться завершения выполнения программы перед переходом к следующему оператору в вашем сценарии. Если установлено значение true, выполнение сценария останавливается до завершения программы, а Run возвращает любой код ошибки, возвращенный программой. Если установлено значение false (по умолчанию), метод Run возвращается сразу после запуска программы, автоматически возвращая 0 (не интерпретируется как код ошибки).

Заметки Метод Run возвращает целое число. Метод Run запускает программу, работающую в новом процессе Windows. Вы можете заставить ваш скрипт дождаться завершения выполнения программы, прежде чем продолжить. Это позволяет синхронно запускать сценарии и программы. Переменные среды в аргументе strCommand автоматически раскрываются. Если тип файла был правильно зарегистрирован для конкретной программы, вызов run для файла этого типа запускает программу. Например, если Word установлен в вашей компьютерной системе, вызов «Выполнить для файла * .doc» запускает Word и загружает документ. В следующей таблице перечислены доступные настройки для intWindowStyle.

intWindowStyle  Description  
0
 Hides the window and activates another window.

1
 Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

2
 Activates the window and displays it as a minimized window. 

3
 Activates the window and displays it as a maximized window. 

4
 Displays a window in its most recent size and position. The active window remains active.

5
 Activates the window and displays it in its current size and position.

6
 Minimizes the specified window and activates the next top-level window in the Z order.

7
 Displays the window as a minimized window. The active window remains active.

8
 Displays the window in its current state. The active window remains active.

9
 Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.

10
 Sets the show-state based on the state of the program that started the application.

Пример 1 Следующий код VBScript открывает копию выполняемого в данный момент сценария в Блокноте.

Копировать код

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad " & WScript.ScriptFullName

Следующий код VBScript делает то же самое, за исключением того, что он указывает тип окна, ожидает, пока «Блокнот» будет отключен пользователем, и сохраняет код ошибки, возвращаемый из «Блокнота» при его завершении.

Копировать код

Set WshShell = WScript.CreateObject("WScript.Shell")

Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)

Пример 2 Следующий код VBScript открывает командное окно, меняет путь на C: \ и выполняет команду DIR.

Копировать код

Dim oShell

Set oShell = WScript.CreateObject ("WSCript.shell")

oShell.run "cmd /K CD C:\ & Dir"

Set oShell = Nothing

Относится к:

1
GoughW 18 Май 2014 в 09:26

Попробуй это

  sh.run "cmd /K php -c php.ini -f some_path\runer\run.php & exit",1,true
1
shuvro 22 Май 2014 в 08:13

Для любого запроса вы можете использовать:

Dim sh
Set sh = WScript.CreateObject("WScript.Shell")
sh.run "cmd /K a.exe & exit",1,true
Set sh = Nothing

Думаю, это тебе поможет.

1
marc_s 28 Сен 2015 в 08:24