Пробел в доски / псевдоним для окон?

423
Thomas Moors

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

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

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

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

 image showing "invalid macro definition" error

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

4

2 ответа на вопрос

4
harrymc

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

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

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

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

image

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

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

image2

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

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

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

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

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

Почему я получаю `` `php_artisan: термин 'docker-compose exec apache php / home / medpets / WWW / laravel / artisan' не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, убедитесь, что путь правильный, и повторите попытку. В строке: 1 символ: 1 + список php_artisan + ~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (docker-compose ... laravel / artisan: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException Thomas Moors 5 лет назад 0
Это трудно понять из комментария. Не могли бы вы добавить скриншот. harrymc 5 лет назад 0
https://imgur.com/a/XyXQCdx Thomas Moors 5 лет назад 0
Спасибо, пожалуйста, также включите вашу команду doskey. harrymc 5 лет назад 0
`New-Alias ​​php_artisan" docker-compose exec apache php / home / medpets / WWW / laravel / artisan "` Thomas Moors 5 лет назад 0
ОК, я понял и изменил свой ответ. harrymc 5 лет назад 1
2
Aulis Ronkainen

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

Есть ли обходной путь? Thomas Moors 5 лет назад 1
Как насчет добавления "_" между или без добавленного пробела, или что-то подобное (например, php_artisan или phpartisan)? Aulis Ronkainen 5 лет назад 3