5

Я пытаюсь запустить команду Artisan от Laravel внутри контейнера (docker), определив псевдоним doskey.

Моя идея была:

php artisan=docker-compose exec apache php artisan $1

Однако это не позволяет мне использовать пробел в ключе. Есть идеи как этого добиться?

изображение с ошибкой «недопустимое определение макроса»

править я сделал небольшой инструмент с графическим интерфейсом для Windows , чтобы запустить команды https://github.com/thomasmoors/DockerArtisan

2 ответа2

5

Я должен в этом случае дать отрицательный ответ - использование пробелов в имени доски невозможно. Doskey был создан для командной строки (cmd), поэтому он довольно прост по своей концепции.

Это невозможно по моему мнению, так как:

  • В команде doskey, такой как doskey a b=ab , для недопустимого параметра требуется "a"
  • Команда doskey не принимает кавычки вокруг имени макроса.

Вот несколько тестов, которые я провел:

образ

Как видите, некоторые специальные символы принимаются, но только без пробелов.

Даже без пробелов в имени макроса doskey является старой программой для DOS и может работать в PowerShell только с трудом. Он конфликтует с модулем PSReadLine который опирается на встроенные функции ввода с консоли. Я проверял это:

image2

Как видите, вам нужно выполнить два дополнительных действия:

  • Выполните команду Remove-Module PSReadLine
  • Добавьте в команду doskey параметр /exename=powershell.exe

Когда оба действия выполнены, команда выполняется правильно и выдает правильную ошибку.

Мой лучший совет - не использовать doskey в PowerShell. Doskey старый, а PowerShell новый, и их можно использовать только с трудом. Я действительно не думаю, что доски настолько полезен, чтобы быть незаменимым.

Попробуйте найти другое решение для ваших часто используемых команд. Например, сохраните команды в исполняемых файлах, таких как .ps1 или .cmd или .bat в папке, которую вы добавили бы в PATH.

2

Нет способа достичь этого. В макронаме Doskey не должно быть пробела.

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