Platz in doskey / Alias ​​für Fenster?

526
Thomas Moors

Ich versuche, den Artisan- Befehl von Laravel innerhalb des (Docker) -Containers auszuführen, indem ich einen Doskey-Alias ​​definiere.

Meine Idee war:

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

Es erlaubt mir jedoch nicht, ein Leerzeichen im Schlüssel zu verwenden. Hast du eine Idee, wie du das erreichen kannst?

 Bild mit Fehler "ungültige Makrodefinition"

Bearbeiten Ich habe ein kleines GUI-Tool für Windows erstellt, um die Befehle https://github.com/thomasmoors/DockerArtisan auszuführen

4

2 Antworten auf die Frage

4
harrymc

Ich muss in diesem Fall eine negative Antwort geben - die Verwendung von Leerzeichen in einem Doskey-Namen ist unmöglich. Doskey wurde für die Eingabeaufforderung (cmd) erstellt. Das Konzept ist ziemlich einfach.

Dies ist meiner Meinung nach unmöglich, da:

  • Bei einem doskey-Befehl, z. B. doskey a b=ab, ist für eine ungültige Option "a" erforderlich
  • Der Befehl doskey akzeptiert keine Anführungszeichen um den Makronamen.

Hier sind einige Tests, die ich durchgeführt habe:

image

Wie Sie sehen, werden einige Sonderzeichen akzeptiert, jedoch keine Leerzeichen.

Doskey ist auch ohne Leerzeichen im Makronamen ein altes DOS-Programm und kann nur schwer in PowerShell ausgeführt werden. Es steht im Konflikt mit dem PSReadLineModul, das auf den Eingabefunktionen der systemeigenen Konsole beruht. Ich habe das getestet:

image2

Wie Sie sehen können, müssen Sie zwei zusätzliche Aktionen ausführen:

  • Den Befehl ausgeben Remove-Module PSReadLine
  • Fügen Sie dem Befehl doskey den Parameter hinzu /exename=powershell.exe

Wenn beide abgeschlossen sind, wird der Befehl korrekt ausgeführt und gibt den richtigen Fehler aus.

Mein bester Rat ist, doskey nicht in PowerShell zu verwenden. Doskey ist alt und PowerShell ist neu und sie können nur schwer zusammen verwendet werden. Ich glaube wirklich nicht, dass doskey so nützlich ist, um unersetzlich zu sein.

Versuchen Sie, eine andere Lösung für Ihre häufig verwendeten Befehle zu finden. Speichern Sie die Befehle beispielsweise in ausführbaren Dateien wie .ps1 oder .cmdoder .batin einem Ordner, den Sie dem PATH hinzufügen würden.

Warum erhalte ich `` php_artisan: Der Begriff 'docker-compose exec apache php / home / medpets / WWW / laravel / artisan' wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens oder, wenn ein Pfad enthalten ist, überprüfen Sie den Pfad und versuchen Sie es erneut. In Zeile: 1 Zeichen: 1 + php_artisan list + ~~~~~~~~~~~ KategorieInfo: ObjectNotFound: (docker-compose ... laravel / artisan: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException Thomas Moors vor 5 Jahren 0
Aus einem Kommentar ist es schwer zu verstehen. Könnten Sie bitte einen Screenshot hinzufügen? harrymc vor 5 Jahren 0
https://imgur.com/a/XyXQCdx Thomas Moors vor 5 Jahren 0
Danke, bitte geben Sie auch Ihren Doskey-Befehl an. harrymc vor 5 Jahren 0
`New-Alias ​​php_artisan" docker-compose exec apache php / home / medpets / WWW / laravel / handwerker "` Thomas Moors vor 5 Jahren 0
OK, ich habe es bekommen und meine Antwort geändert. harrymc vor 5 Jahren 1
2
Aulis Ronkainen

Es gibt keine Möglichkeit, dies zu erreichen. Doskey Macroname kann kein Leerzeichen enthalten.

Gibt es eine Problemumgehung? Thomas Moors vor 5 Jahren 1
Wie wäre es, ein "_" zwischen oder ohne zusätzliches Leerzeichen oder etwas Ähnliches (wie php_artisan oder phpartisan) hinzuzufügen? Aulis Ronkainen vor 5 Jahren 3