2

Я написал пакетный скрипт для автоматизации запуска моей среды разработки, но он выполняется очень долго. Фактически, это фактически никогда не заканчивалось. Останавливается после solr start . Я просто предполагаю, что если это останется, это в конце концов закончится.

Есть ли причина, по которой он не будет продолжать выполняться после solr start? solr start полностью завершается, затем отображается только мигающее подчеркивание после последней строки команды.

Вот мой пакетный скрипт:

cd C:\AerospikeVM
vagrant up
cd C:\solr-6.1.0\bin
solr start
cd C:\XAMPP
xampp-control
cd C:\Program Files\Android\Android Studio\bin
studio64.exe
cd C:\Program Files\NetBeans 8.1\bin
netbeans64.exe
cd C:\Program Files\Genymobile\Genymotion
player --vm-name "Samsung Galaxy S6 - 6.0.0 - API 23 - 1440x2560"
cd C:\Program Files\Git
git-bash.exe
cd C:\Users\me\Programs\Program
start notepad Phase2.0_toDoCache.txt
start notepad Phase2.0_toDoList.txt

2 ответа2

3

Если вы просто запустите пакетный файл (или командный сценарий .cmd , что в принципе то же самое) из другого пакетного файла, он не вернется, когда завершится внутренний пакет, он просто завершится.

Чтобы избежать такого поведения, вы можете использовать команду Call для вызова вложенного / внутреннего пакетного файла, что заставит его вернуться к родительскому пакетному файлу после его завершения и продолжить выполнение команд.

От call /?:

Вызывает одну пакетную программу из другой.

CALL [диск:] [путь] имя файла [параметры пакета]

Поэтому измените solr start на call solr.cmd start и ваш пакетный файл должен продолжиться после запуска Solr.

2

Причина этого заключается в том, что solr start запускает программу, и теперь ваш скрипт ожидает завершения этой программы, прежде чем она продолжится.

Чтобы остановить это, вам нужно использовать команду start "title" "program"

Так что в вашем примере вы бы хотели заменить solr start на start "solr" "solr start"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .