Вот моя коллекция способов достичь этого - и даже больше - там, где это было возможно, я попытался вернуть также PID запущенного процесса (все связанные сценарии можно загрузить и сохранить под любым удобным для вас именем):
1) Решение IEXPRESS можно использовать даже на старых машинах win 95/98. Iexpress - действительно древний инструмент, который все еще поставляется с Windows - в качестве аргументов принимаются только команда и ее аргументы.
Пример использования:
call IEXPhidden.bat "cmd /c myBat.bat" "argument"
2) SCHTASKS - снова принимает только два аргумента - команду и аргументы. Также проверяет, запущен ли он с повышенными правами и, если возможно, получает PID процесса с помощью WEVTUTIL (доступно из Vista и выше, поэтому более новая версия Windows получит PID).
Пример использования:
call SCHPhidden.bat "cmd /c myBat.bat" "argument"
3) 'WScript.Shell' - скрипт является полной оболочкой для 'WScript.Shell', и каждый возможный параметр можно установить с помощью параметров командной строки. Это jscript / пакетный гибрид и может называться летучей мышью.
Пример использования (для получения дополнительной информации напечатайте справку с '-h'):
call ShellRunJS.bat "notepad.exe" -style 0 -wait no
4) 'Win32_ProcessStartup' - снова полная оболочка и все параметры доступны через аргументы командной строки. На этот раз это WSF / пакетный гибрид с некоторыми Jscript и некоторыми частями VBScript код - но он возвращает PID запущенного процесса. Если процесс не скрыт, можно использовать некоторые параметры, такие как координаты X / Y (не применимо для каждого исполняемого файла - но, например, cmd.exe принимает координаты).
Пример использования (для получения дополнительной информации напечатайте справку с '-h'):
call win32process.bat "notepad" -arguments "/A openFile.txt" -showWindows 0 -title "notepad"
5). NET решение . Используются большинство параметров ProcessStartInfo (но в конце концов я слишком устал, чтобы включать все):
Пример использования (для получения дополнительной информации напечатайте справку с '-h'):
call ProcessStartJS.bat "notepad" -arguments "/A openFile.txt" -style Hidden -directory "." -title "notepad" -priority Normal