Вы можете попробовать start /MAX yourscript.bat
чтобы запустить ваш скрипт в развернутом cmd (до Windows 7)
Редактировать (Рик):
Я создал небольшой пример, который показывает, как вы можете сделать все это в одном пакетном файле
(без отдельного лаунчера):
@echo off
if not "%1" == "max" start /MAX cmd /c %0 max & exit/b
:: here comes the rest of your batch-file
echo "test"
pause
Перед запуском развернутой версии будет небольшое мерцание оригинального пакетного файла (который немедленно выйдет).
Простое объяснение:
Если пакет не вызывается с параметром max
мы снова вызываем себя (%0
), это время максимизируется с помощью start /max
, и с параметром max
и, таким образом, при втором вызове он пропускает оператор if и продолжайте с вашими командами.
Сломать:
if not "%1" == "max"
выполняйте следующую команду, только если %1
не "max". %1
обозначает первый параметр, данный пакетному файлу. Таким образом, my_batch.bat max
будет иметь значение max
в %1
-переменной. Если мы не запустили пакет с параметром max
нам нужно выполнить эту строку.
start /MAX
запустить команду после нее в развернутом виде.
cmd /c
выполняет cmd.exe
и /c
означает выход после этого.
%0 max
. %0
обозначает ваше собственное имя пакетного файла, а здесь max
- его первый параметр. Это означает, что нам нужно пропустить первую строку if
иначе мы попадем в цикл :)
& exit/b
: &
означает выполнение следующей команды одновременно с предыдущей. Это означает, что мы выполнили start /max your batchfile
и тем временем завершили текущий пакет.
Это также означает, что мы не можем вызвать эту версию с другими параметрами, кроме max
. Если вашим пакетным файлам нужен параметр для запуска, вам понадобится еще немного волшебства (например, shift
% 1 после тестирования).
Если это так, дайте нам знать.