Місце в doskey / псевдонім для Windows?


5

Я намагаюся запустити команду Artisan Laravel всередині контейнера (docker), визначивши псевдонім doskey.

Моя ідея:

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

Однак це не дозволяє мені використовувати пробіл у ключі. Будь-яка ідея, як цього досягти?

 зображення, що показує помилку "недійсне визначення макросу"

редагувати Я зробив невеликий інструмент GUI для Windows для запуску команд https://github.com/thomasmoors/DockerArtisan

Відповіді:


5

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

На мій погляд, це неможливо, оскільки:

  • У такій команді doskey, як " doskey a b=ab," потрібно "не" для недійсної опції
  • Команда doskey не приймає лапки навколо імені макросу.

Ось кілька тестів, які я провів:

зображення

Як бачимо, деякі спеціальні символи приймаються, але тільки не пропуски.

Навіть без пробілів у назві макросів, doskey - це стара програма DOS і працювати в PowerShell може лише з працею. Він суперечить PSReadLineмодулю, який спирається на вхідні функції консолі. Я перевірив це:

зображення2

Як бачите, вам потрібно зробити два додаткові дії:

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

Коли обидва виконані, команда виконується правильно і видає правильну помилку.

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

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


Чому я отримую `` `php_artisan: Термін 'docker-compose exec apache php / home / medpets / WWW / laravel / artisan' не розпізнається як ім'я командлета, функції, файлу сценарію чи операційної програми. Перевірте написання імені, або якщо шлях включений, переконайтесь, що шлях правильний, і спробуйте ще раз. У рядку: 1 char: 1 + php_artisan list + ~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (docker-compose ... laravel / artisan: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Thomas

Важко зрозуміти з коментаря. Не могли б ви додати скріншот.
harrymc


Спасибі, будь ласка, включіть також вашу команду doskey.
harrymc

1
Гаразд, я зрозумів це і змінив свою відповідь.
harrymc

2

Неможливо цього досягти. У макроімені Doskey не може бути місця в ньому.


1
Чи існує рішення?
Томас

3
Як щодо додавання "_" між доданим простором або без нього, або чогось подібного (наприклад, php_artisan або phpartisan)?
Ауліс Ронкайнен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.