Bat файл открывается и сразу закрывается
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Pause если добавить, то в окошке будет "Press any key to continue . . .", после нажатия эни кея, оно закроется. а мне надо чтоб дальше ручками в нём печатать.
ps1 Это повершелловский файл.
после нажатия эни кея, оно закроется. а мне надо чтоб дальше ручками в нём печатать » |
Конфигурация компьютера | |
Процессор: Intel Pentium 4 2,8 MHz | |
Материнская плата: ASRock P4i65PE (5 PCI, 1 AGP, 4 DDR DIMM, Audio, LAN) | |
Память: 4 ГБ (PC3200 DDR SDRAM) | |
HDD: ST3200827A (200 ГБ) IDE | |
Видеокарта: NVIDIA GeForce 6200 (512 МБ) | |
Звук: Creative SB Live! 5.1 Digital (SB0220) Sound Card | |
Блок питания: Powerman 350 Вт | |
CD/DVD: NEC DVD_RW ND-3551A | |
Монитор: Dell 2314PH | |
Ноутбук/нетбук: Стационарный компьютер | |
ОС: Windows 7 x32 Professional |
Подскажите, пожалуйста: есть cmd-файл, состоящий из одной строки: avz.exe lang=en. Когда я его запускаю, на экране появляются и висят, пока не закрою, окно DOS и окно AVZ.
А если я запускаю avz.exe lang=en в командной строке Total Commander или через контекстное меню "Запуск с параметрами" от DistrTools - окно DOS на экране не показывается.
Почему такая разница?
Конфигурация компьютера | |
Процессор: Intel Core i7-3770K | |
Материнская плата: ASUS P8Z77-V LE PLUS | |
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб) | |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб | |
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS | |
Звук: Realtek ALC889 HD Audio | |
Блок питания: be quiet! Straight Power 11 650W | |
CD/DVD: ASUS DRW-24B5ST | |
Монитор: ASUS VG248QE 24" | |
ОС: Windows 8.1 Pro x64 | |
Индекс производительности Windows: 8,1 | |
Прочее: корпус: Fractal Design Define R4 |
Когда я его запускаю, на экране появляются и висят, пока не закрою, окно DOS и окно AVZ. |
Это не окно DOS, а командная строка (cmd.exe выполняет файлы с расширением .cmd).
Подскажите, пожалуйста: есть cmd-файл, состоящий из одной строки: avz.exe lang=en. Когда я его запускаю, на экране появляются и висят, пока не закрою, окно DOS и окно AVZ. » |
-------
Как сказало Дерево Дровосеку: "я - пень".
Когда я его запускаю, на экране появляются и висят, пока не закрою, окно DOS и окно AVZ » |
Запуск указанной программы или команды в отдельном окне.
START ["заголовок"] [/Dпуть] [/i] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/b]
[команда/программа] [параметры]
"заголовок" Заголовок окна.
путь Рабочий каталог.
B Запуск приложения без создания нового окна с отключением
обработки сочетания клавиш ^C. Если приложение не
обрабатывает сочетание клавиш ^C самостоятельно,
единственным способом его прерывания является
использование сочетания клавиш ^Break.
I Новой средой станет исходная среда, переданная
cmd.exe, а не текущая среда.
MIN Запуск команды/программы в свернутом окне.
MAX Запуск команды/программы в развернутом окне.
SEPARATE Запуск 16-разрядной программы Windows в отдельной
области памяти.
SHARED Запуск 16-разрядной программы Windows в общей
области памяти.
LOW Запуск приложения с приоритетом IDLE.
NORMAL Запуск приложения с приоритетом NORMAL.
HIGH Запуск приложения с приоритетом HIGH.
REALTIME Запуск приложения с приоритетом REALTIME.
WAIT Запуск приложения с ожиданием его завершения.
ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL
BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
команда/программа
Если это внутренняя команда cmd.exe или пакетный файл,
обработчик команд (cmd.exe) запускается с ключом /K.
Это означает, что окно не будет закрыто после завершения
команды.
Если это не внутренняя команда cmd.exe и не пакетный файл,
значит, это программа, которая будет запущена в графическом
или текстовом окне.
параметры Параметры, передаваемые команде/программе.
Изменения вызова внешних команд из командной строки или с помощью команды
START при включении расширенной обработки команд:
Для вызова неисполняемых файлов через механизм сопоставления типов файлов
достаточно просто ввести имя файла в командной строке. Например, команда
WORD.DOC запускает приложение, сопоставленное расширению имени файла .DOC.
Сведения о создании подобных сопоставлений из пакетных файлов приведены
в описаниях команд ASSOC и FTYPE.
При запуске 32-разрядного приложения с графическим интерфейсом пользователя
обработчик команд CMD.EXE не ожидает завершения работы приложения перед
возвратом к приглашению командной строки. Подобное новое поведение НЕ
относится к запуску приложений из пакетных файлов.
При выполнении командной строки, первым элементом которой является текстовая
строка "CMD" без расширения имени файла или указания пути, она заменяется
значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из
текущей активной папки, если таковая программа там имеется.
Если первый элемент командной строки не содержит расширения имени файла,
обработчик команд CMD.EXE использует значение переменной среды PATHEXT,
чтобы определить расширения имен исполняемых файлов и порядок поиска
нужного файла. По умолчанию для переменной PATHEXT задается
значение:
Обратите внимание, что этот синтаксис подобен синтаксису для переменной
PATH, то есть отдельные элементы разделяются точкой с запятой.
Если при поиске исполняемого файла нет соответствия ни одному из расширений,
выполняется проверка соответствия указанного имени папки. Если имя папки
соответствует указанному, то команда START запускает EXPLORER для этого
пути. Если такое действие выполняется из командной строки, то оно
эквивалентно выполнению команды CD /D для указанного пути.
Во многих инструкциях на сайте для выполнения действий предлагается использовать команды в командной строке, в некоторых случаях — bat файл. Один из частых комментариев к таким материалам: командная строка сразу закрывается и нельзя ничего успеть увидеть.
В этой статье подробно о том, почему командная строка сразу закрывается, что делать, чтобы она не закрывалась применительно к Windows 11 и Windows 10 (актуально и для предыдущих систем), а также дополнительная информация на тему.
Почему командная строка закрывается и что делать, чтобы этого не происходило
Рассмотрим два случая, когда командная строка закрывается:
- После выполнения введённой команды
- После выполнения bat-файла
В первом случае почти всегда причиной является ввод команды не в командную строку, а в диалоговое окно «Выполнить», которое некоторые пользователи считают командной строкой, хотя это не так. Подробнее о том, как именно работают указанные системные элементы:
- Если вводить команду в окно «Выполнить» (вызываемое клавишами Win+R, либо через правый клик по кнопке «Пуск» в случае Windows 11 и 10), окно командной строки откроется и закроется сразу после выполнения, если дальнейший ввод пользователя не требуется.
- Если запустить непосредственно командную строку (Как открыть командную строку, Запуск командной строки от имени администратора), и ввести команду уже в ней, автоматическое закрытие окна происходить не будет, и вы увидите, что именно выдает команда в результате выполнения.
В случае выполнения bat-файла, если команды в нём не требуют ввода пользователя и не содержат команд паузы до нажатия клавиши пользователем, то при запуске (простым двойным кликом из расположения файла) и успешном выполнении, окно командной строки будет автоматически закрыто.
Если вы хотите иметь возможность прочитать ход выполнения и результат работы bat-файла, вы можете:
- Открыть командную строку (как во втором пункте выше), указать путь к bat-файлу и нажать Enter. Он будет запущен и выполнен, но командная строка не будет закрыта после выполнения.
- В конце файла добавить команду PAUSE (сделать это можно в любом текстовом редакторе, подробнее: Как создать bat файл в Windows). В этом случае после выполнения любым способом окно не закроется пока вы не нажмете любую клавишу.
Тонкая настройка командной строки
Если нет желания возиться с каждым командным файлом, отредактируйте параметры работы самой командной строки.
Для этого открываем командой regedit редактор реестра и разворачиваем ветку:
HKCR\batfile\shell\open\command
В правой колонке меняем значение параметра по умолчанию с "%1" %* на cmd.exe /k "%1" %*.
Тоже самое проделываем с параметром по умолчанию в ветке HKCR\cmdfile\shell\open\command , для командных файлов формата CMD .
Вот и всё, отныне командная строка будет закрываться только по решению юзера, если только в сценарий не прописана команда exit .
Командная строка сама открывается и сразу закрывается
Иногда вопрос о закрытии командной строки относится к другой ситуации: без каких-либо действий пользователя, обычно при входе в систему, но иногда и в произвольные моменты времени, само открывается окно командной строки и тут же закрывается, раньше, чем вы успеваете что-либо увидеть. В этом случае возможны следующие варианты:
почему сервисы не стартуют
правим батник так
и читаем стандартный вывод
кстати, файл ~dp0derby_common.bat присутствует в каталоге?
PS: отладка - очень веселый процесс
сделал запустил - видимо происходит запуск CALL этого derby_common
в папке он имеется, прилагаю
а далее в окне только лишь "нажми любую клавишу" и все.
да конечно по полной программе. jdk1.8.0_51
собственно с написанием фронт приложений на java нет проблем, но вот как только пробую подсоединить сервер для базы данных, то все упираюсь в эти баты. полгода назад была такая трабла так и не справился. сейчас снова.
Если есть время . можно команды из батников ручками в консоль вставлять в порядке очереди и смотреть, что получается.
Чего то точно в вашей системе не хватает
А заменить эту шляпу ничем нельзя.
ну время можно найти. только надо понять что толком делать. можете мне на пальцам как ламеру объяснить что вставлять и куда)) мне из этих bat не совсем ясно кто где какая команда и в каком виде запускать ее
я всегда открывал cmd просто как есть. а его еще можно открыть от имени администратора?
а что есть синтаксис команды в батнике?
напр if "%_JAVACMD%"=="" goto end
if "%_USE_CLASSPATH%"=="no" goto runNoClasspath
if not "%CLASSPATH%"=="" goto runWithClasspath
В некоторых случаях даже нужно!
Может у вас сервис именно поэтому не запускается?
Добавлено через 2 минуты
а что есть синтаксис команды в батнике?
напр if "%_JAVACMD%"=="" goto end
if "%_USE_CLASSPATH%"=="no" goto runNoClasspath
if not "%CLASSPATH%"=="" goto runWithClasspath
С этим сложно!
Тут идёт проверка условий (if), если они не совпадают с заданным, осуществляется переход (goto) на метку
Это надо раскуривать логику батника
Вся оставшаяся логика как раз определяет озвученные выше переменные. Что-то мне подсказывает, что не все находятся. И добавлять в конце CMD /K бессмысленно - это новый вызов командной строки, там вывод явно пустой будет. Уже правильно предложили запускать всё из cmd и использовать pause для дебага.
ну я могу все позапускать, писал выше что не понимаю конкретно какие команды и в каком синтаксисе. вы могли бы помочь?
Так это всё в этих 2-х батниках описано:
"%_JAVACMD%" - java.exe;
%DERBY_OPTS% - не задано;
"%LOCALCLASSPATH%" - %DERBY_HOME%/lib/derby.jar;%DERBY_HOME%/lib/derbynet.jar;%DERBY_HOME%/lib/derbyclient.jar;%DERBY_HOME%/lib/derbytools.jar;%DERBY_HOME%/lib/derbyoptionaltools.jar, ссылки на соответствующие jar-файлы, которые лежат в %Derby_home%, в корне которого как раз озвученные батники лежат;
%CLASSPATH% - не задано;
%DERBY_CMD_LINE_ARGS% - параметры, которые передаются startNetworkServer.bat'у;
Запускайте напрямую в cmd готовую команду. Не заданные параметры скорее всего в мане для бд/проекта описаны.
мне так и не удается указать свой уровень понимания происходящего (
напр, %DERBY_OPTS% - это и есть команда? ясно что в таком синтаксисе она не запускается никак.
На самом деле там всё просто, просто я явно не идеально объясняю
Это переменные, которые должны быть определены к моменту запуска. Если переменная не будет определена, то она и не появится в команде. Пример для запуска даблкликом startNetworkServer.bat:
в ходе выполнения он находит многие из них (в скрипте при таком запуске система не найдёт значения для %DERBY_OPTS% и %DERBY_CMD_LINE_ARGS%), результат должен быть примерно таким:
Предположил, что derby находится в папке c:\DERBY, ну и путь использовал к jre, а не jdk, это должно быть не принципиально.
Но стоит проверить переменные среды для пользователя и системы, может локально у вас что-то уже из перечисленного определено. Ну и по опыту - проверяйте наличие переменной %JAVA_HOME% - не всегда после установки jre/jdk она появляется, а от неё зависит поиск java.exe.
может этот линк может чтото еще объяснить?
насчет переменных среды- как раз вчера этим занимался. а сейчас вот добавил еще DERBY_HOME с адресом C:\Derby\db-derby-10.12.1.1-bin
странно что ее там не было?
после этого напр запустилась команда java -jar %DERBY_HOME%\lib\derbyrun.jar dblook (взял из мануала выше) и что-то там выдала результатом.
вчера добавил JAVA_HOME, и добавил в адрес PATH - C:\Program Files\Java\jdk1.8.0_51\bin в конце
startNetworkServer.bat пока так же глух
Легко запустил этот derby с первой попытки, в мане всё описано. Причём он довольно внятно пишет про допущенные ошибки и неправильно установленные переменные.
Можно без установки переменных, ленивый способ:
java -jar derbyrun.jar server start - запускать из DERBY_HOME\lib.
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey
Имеется бат файл, который запускает выполнение exe с параметрами. При запуске от имени администратора окно сразу же закрывается. Такая проблема наблюдается только на одной из рабочих машин, на других все отрабатывает как нужно. Вот сам файл:
программа полноценно работает только если запустить от имени администратора
программа полноценно работает только если запустить от имени администратора. как сделать чтобы.
Как запустить файл от имени администратора?
Как запустить этот файл от имени администратора, чтоб появлялась стандартная табличка (Запустить от.
Как показать?
Просто ничего не происходит, на долю секунды буквально открывается консольное окно и сразу закрывается
И это любой батник так себя ведет, не только этот
Windows 10 используется
Если сформируется файл log.txt, то покажите его содержимое
P.S. Надеюсь понятно, что вместо test.bat нужно указать полный путь к Вашему скрипту
Содержимое лог файла
C:\Windows\system32>goto start
C:\Windows\system32>start Z:\Proxy.exe 10.5.178.32 10.7.100.165 Z:\Proxy 0
После запуска бат файла из командной строки все заработало 0_о
В чем была причина такого поведения и почему оно исправилось - могу только гадать
Избавьтесь от перехода к метке и замените слэши на двоеточия в шапке. Проверьте в кодировках: OEM 866, ANSI, UTF-8.
С путём к отчёту точно нестыковок нет? Отдельно команда из "повышенной" консоли срабатывает?
Чтобы не повышать через конт. меню, можно выполнять .vbs:
Просто ничего не происходит, на долю секунды буквально открывается консольное окно и сразу закрывается
И это любой батник так себя ведет, не только этот
Представь себе это нормальное поведение любой консольной программы.
Если ты был не в курсе - где ты прогулял матчасть?
Повторю: любая консольная программа запущенная кликом мышки открывается с окошком консоли, выполняется (сколько именно - зависит от программы) и тут же завершается закрыв консольное окно.
Так и должно быть. Если, только, в программе не прописана пауза. или окно консоли cmd не запущено с ключом /k.
Поэтому умные люди так (кликом) консольные программы не запускают.
Добавлено через 5 минут
Garry Galler, Представь себе - я прекрасно это знаю. И поэтому было написано - что такая проблема наблюдается только на одной машине и только после переустановки системы. С pause и без pause. К тому же было сказано, что бат файл запускает другой exe и все прекрасно работает, когда запущено не от имени администратора или запущено на другой машине.
И прежде чем говорить про прогул матчасти и умных людей, может стоило нормально пост прочитать?
Да нет, фигню какую то несу наверное.
Наличие в кода батника запуска другой исполняемой программы никак не влияет на поведение консольного окна cmd (если, конечно, сама программа его не изменяет).
Поэтому формулировка "ничего не происходит, на долю секунды буквально открывается консольное окно и сразу закрывается" является или следствием непонимания данного факта или неверно сформулированной проблемы.
Если бы ты изначально запустил свой батник из cmd, то данная формулировка бы не появилась, так окно cmd бы . не закрылось. Программа что-то написала бы stdout и ты бы увидел, что именно у нее не получилось сделать.
И тебе пришлось бы как то иначе описать свою проблему.
Вывод: формулируй суть проблемы так, чтобы она не вызывала желания послать автора. в документацию.
Командная строка, будучи запущенной, закроется только тогда, когда пользователь нажмет кнопку завершения работы или выполнит в ней команду exit. Но бывает и такое, что после командная строка закрывается сама, не сообщая пользователю о результатах отработанного сценария и не сообщая о причинах закрытия. Как правило, с таким поведением консоли приходится сталкиваться при выполнении скриптов — CMD или BAT -файлов.
Это вполне нормально, но иногда нужно, чтобы после отработки такого скрипта консоль не закрывалась автоматически, а ждала ввода следующей команды.
Ну что же, понудить ее изменить свое поведения очень просто. Самый простой способ — это добавить в конец командного файла команду pause или специальный ключ, запускающую копию командной строки.
Главное, чтобы у вас имелись права на редактирование этого самого скрипта.
Отройте скрипт Блокнотом или любым другим текстовым редактором и добавьте в самый конец кода команду pause или cmd /k.
Это два разных способа и работают они по-разному.
Команда cmd /k работает несколько иначе.
Будучи добавлена в конец сценария, она как-бы перезапускает консоль, выводя стандартное приглашение ввести новую команду.
Если же добавить cmd /k в середину кода, его выполнение будет прервано и прекращено.
В этом основная разница между этими командами.
Читайте также: