Windows CMD автоматически использует определенную программу для запуска команды - PullRequest
0 голосов
/ 05 июля 2018

Вот моя проблема (которая больше связана с рабочим процессом, чем с реальной проблемой):

В настоящее время я изучаю, как использовать Symfony 4, и, как вы, возможно, знаете, эта среда использует множество команд с PHP, используя командную строку $ php bin/console command.

Вот мой вопрос: есть ли какой-нибудь возможный способ настроить окно CMD, поэтому мне не нужно всегда вводить $ php bin/console перед именем команды?

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Вам понадобится командный файл для выполнения вашей задачи Сохраните следующий код в папке вашего проекта, где находится папка bin и другие файлы Symfony, и назовите ее SymfonyConsole.bat

@echo off

:SymfonyConsolePrompt
set "SymfonyConsoleCommand="
echo,
set /p "SymfonyConsoleCommand=Symfony Console Command>"
for /F "tokens=*" %%C in ("%SymfonyConsoleCommand%") do set "SymfonyConsoleCommand=%%C"

if defined SymfonyConsoleCommand (
    php bin/console %SymfonyConsoleCommand%
) else (
    choice /C NY /N /M "Do you want to quit Symfony Console Prompt?[YN]"
    if errorlevel 2 exit /b
)
goto :SymfonyConsolePrompt

Затем в командной строке введите > SymfonyConsole Вы получите это приглашение Symfony Console Command>, готовое для получения команд для консольного компонента Sympony.

ex: Symfony Console Command>server:start 0.0.0.0:8000 автоматически запустит php console/bin server:start 0.0.0.0:8000, а затем будет ждать следующую консольную команду Sympony, пока вы не нажмете Enter, ничего не вводя. В этом случае вы можете выйти из пакетного файла и вернуться к приглашению cmd.

0 голосов
/ 05 июля 2018
@echo off
setlocal

:: Check 1st argument for help.
if "%~1" == "-h" goto :help
if "%~1" == "--help" goto :help
if "%~1" == "/?" goto :help

:: Check script arguments for program.
set _program=%*

:: If not program defined, prompt for program.
if not defined _program set /p "_program=Enter the program: "

:: If the required program is not defined then exit.
if not defined _program exit /b 1

:: Set a prompt string.
set "_prompt=%_program:"='%>"

:: Show information before start of the loop.
echo Pass arguments to '%_program%' in a loop.
echo.


:begin_loop

:: Prompt for arguments.
set "_args="
set /p "_args=%_prompt% "

:: Restart loop if no args or exit if requested.
if not defined _args goto :begin_loop
if /i "%_args:"='%" == "exit" exit /b 0

:: Clear local variables and then run the program with arguments.
setlocal
set "_prompt=" & set "_program=" & set "_args=" & %_program% %_args%
endlocal

echo.
goto :begin_loop


:help

:: Help information.
echo Pass arguments to a select program in a loop.
echo If script arguments are passed, then that will be the program.
echo If a program is not defined, then a prompt will ask for a program.
echo Variables _prompt, _program and _args are cleared with each execution.

Это то же самое, что я разместил на моем сайте , за исключением строки удалено, задающее экранированное приглашение ANSI для conemu . Сомневаюсь в этом сайт будет держать контрольный символ без изменений, если он будет опубликован.

Я называю это loop.cmd и помещаю его в PATH ( см. Примечание ). Сделано для любого Команда так универсальна.

Для использования:

loop command

тогда вы получите подсказку с командой в ней, т.е.

command>

То, что вы введете в командной строке, будет иметь префикс Команда и выполнена.

Вы можете просто набрать exit, чтобы завершить цикл.

На основе вашего примера использования кода:

loop php bin/console

затем добавьте вашу команду в командной строке:

php bin/console> command

Также существует версия Python, хотя я использую командный файл как он сохраняет автозаполнение и т. д.


Примечание:

PATH Я упоминаю, что скрипт может найти файлы в вашей системе. Путь в переменной среды PATH или текущем рабочий каталог.

Рекомендовать создать путь к папке, т.е. %SystemDrive%\bin и добавить что к системной переменной PATH, где ваш PATH подходит Скрипты могут быть сохранены. Или вы можете просто добавить скрипт в существующий каталог в переменной PATH, если вам неудобно добавить свой собственный каталог в PATH.

Как установить переменные пути и среды в Windows

0 голосов
/ 05 июля 2018

Самый простой (и рекомендуемый) способ - загрузить php bin/console в переменную, а затем просто повторно использовать переменную

Я не знаком с синтаксисом $ php bin/console, но я думаю, что в сценарии Windows эквивалент просто php bin/console

Так что вы можете попробовать это:

SET phpconsole=php bin/console/

"%phpconsole%Command1"
"%phpconsole%Command2"

приведет к этому:

"php bin/console/Command1"
"php bin/console/Command2"

Как выглядит ваш существующий пакетный файл Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...