Вы можете попробовать 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 после тестирования).
Если это так, дайте нам знать.