#batch-file #yarnpkg
#пакетный файл #yarnpkg
Вопрос:
Я пытаюсь записать файл bat, открыть cmd
изменить каталог, а затем запустить yarn.
Это то, что у меня есть на данный момент. Он открывается cmd
и изменяет каталог, затем открывается второе cmd
окно и выполняется команда yarn в исходном каталоге.
start cmd /k cd /D C:DevelopmentprojectX.WebApp
start yarn start --port 4201
Однако я хочу cd
перейти в каталог и выполнить yarn в том же самом окне cmd внутри cd
каталога ‘d.
start cmd /k cd /D C:DevelopmentprojectX.WebApp yarn start --port 4201
Где yarn
C:Program Files (x86)Yarnbinyarn
C:Program Files (x86)Yarnbinyarn.cmd
C:Program Files (x86)Yarnbinyarn.js
В настоящее время то, что я должен сделать
- откройте cmd.
- измените каталог на C:DevelopmentprojectX.WebApp
- введите yarn start -порт 4201
- дождитесь запуска приложения.
- Оставьте окно открытым
Я хотел бы иметь все это в одном bat-файле, который я мог бы запустить и заставить его выполнять все три действия за меня, а не вводить это все время. Я не предпочитаю, чтобы это было в однострочной команде.
Комментарии:
1. Почему бы просто не использовать
/D
опцию:start "" /D "C:DevelopmentprojectX.WebApp" cmd /K yarn start --port 4201
Ответ №1:
Похоже, вы хотите запустить yarn в том же окне, а не открывать новое окно.
@echo off
cd /D "C:DevelopmentprojectX.WebApp"
start "" /b yarn start --port
pause
Комментарии:
1. Ты мой герой. Клянусь, я пробовал что-то подобное, уже думаю, что это была пауза, которую я пропустил.
Ответ №2:
Для вашей заявленной проблемы я бы забыл о явном изменении каталога и использовании параметров уже используемой Start
команды, в частности, ее /D
опции.
Start /B /D "C:DevelopmentprojectX.WebApp" Cmd /K "yarn start --port 4201"
Комментарии:
1. Я не запрашиваю команду из одной строки. Я просто хочу иметь возможность запускать bat-файл, чтобы он открывал окно cmd и запускал yarn, чтобы мне не приходилось каждый раз открывать каталог изменений cmd и вводить эту команду вручную. Я не предпочитаю, чтобы это было в однострочной команде.
2. Ваша команда просто мигает, открывает окно cmd и создает его. Это не запускает сервер
3.
Cmd /K
открываетcmd.exe
окно и сохраняет его открытым, если бы вы удалили команду yarn, оставив толькоStart /D "C:DevelopmentprojectX.WebApp" Cmd /K
, вы бы ясно увидели, что новый cmd.exe будет открыт сC:DevelopmentprojectX.WebApp
в качестве текущего каталога. Итак, принимая это во внимание, моя команда выполняет то, что вы просили, она открывает новый cmd.exe окно с каталогом, помещенным в/D
опции в качестве следующего рабочего каталога, и запускает заданную вами команду. Поскольку вы теперь изменили текст своего вопроса, я скорректировал свой ответ в соответствии с этими изменениями, в частности, используя/B
.
Ответ №3:
В пакетном файле Windows вы можете запускать команды одну за другой с помощью amp;amp;
:
start cmd /k cd /D C:DevelopmentprojectX.WebApp amp;amp; yarn start --port 4201
Если команда cd завершится успешно, то будет запущена команда yarn.
Комментарии:
1. Извините, не работает. Он изменяет каталог, но не запускает yarn