Я пытаюсь написать bat-файл, открыть cmd изменить каталог, а затем запустить пряжу.
Это то, что у меня есть до сих пор. Он открывает cmd и меняет каталог, затем открывает окно второйcmd и запускает команду yarn в исходном каталоге.
start cmd /k cd /D C:\Development\project\X.WebApp
start yarn start --port 4201
Однако я хочу cd перейти в каталог и выполнить пряжу в том же окне команда внутри каталога cd'd.
start cmd /k cd /D C:\Development\project\X.WebApp yarn start --port 4201
Где пряжа
C:\Program Files (x86)\Yarn\bin\yarn
C:\Program Files (x86)\Yarn\bin\yarn.cmd
C:\Program Files (x86)\Yarn\bin\yarn.js
В настоящее время, что я должен сделать
Я хотел бы, чтобы все это было в одном файле bat, который я мог бы запустить, и чтобы он делал все три вещи для меня, а не мне приходилось вводить это все время. Я не предпочитаю, чтобы это было в однострочной команде.





В пакетном файле Windows вы можете запускать команды одну за другой, используя &&:
start cmd /k cd /D C:\Development\project\X.WebApp && yarn start --port 4201
Если команда cd завершится успешно, будет запущена команда yarn.
Извините, не работает. Он меняет каталог, но не запускает пряжу
Кажется, вы хотите запустить пряжу в том же окне, а не открывать новое окно.
@echo off
cd /D "C:\Development\project\X.WebApp\"
start "" /b yarn start --port
pause
Ты мой герой. Клянусь, я уже пробовал что-то подобное. Думаю, это была пауза, которую я пропустил.
Что касается указанной вами проблемы, я бы забыл о явном изменении каталога и использовании уже используемых параметров команды Start, в частности, параметра /D.
Start /B /D "C:\Development\project\X.WebApp" Cmd /K "yarn start --port 4201"
Я не запрашиваю однострочную команду. Я просто хочу иметь возможность запускать файл bat, чтобы он открывал окно cmd и запускал пряжу, чтобы мне не приходилось открывать каталог изменений cmd и каждый раз вводить эту команду вручную. Я не предпочитаю, чтобы это было в однострочной команде.
Ваша команда просто flash открывает окно cmd и существует. Он не запускает сервер
Cmd /K открывает cmd.exe окно и держит его открытым, если вы удалите команду пряжи, оставив только Start /D "C:\Development\project\X.WebApp" Cmd /K, вы ясно увидите, что новый cmd.exe будет открыт с C:\Development\project\X.WebApp в качестве текущего каталога. Итак, принимая во внимание, что моя команда делает то, что вы просили, она открывает новое окно cmd.exe с каталогом, помещенным в параметр /D в качестве текущего рабочего каталога, и запускает указанную вами команду. Поскольку теперь вы изменили тело вопроса, я скорректировал свой ответ, чтобы он соответствовал этим изменениям, в частности, используя /B.
Почему бы просто не использовать опцию
/D:start "" /D "C:\Development\project\X.WebApp" cmd /K yarn start --port 4201