557 Stimmen

< h1 >Aliase im Windows-Befehlszeilenfenster< /h1 >

Ich habe notepad++.exe zu meinen Umgebungsvariablen hinzugefügt.

Jetzt öffnet notepad++.exe filename.txt in der Eingabeaufforderung die Datei filename.txt. Aber ich möchte nur np filename.txt eingeben, um die Datei zu öffnen.

Ich habe versucht, DOSKEY np=notepad++ zu verwenden. Aber es bringt nur ein bereits geöffnetes Notepad++ in den Vordergrund, ohne die Datei zu öffnen. Wie kann ich erreichen, dass es die Datei öffnet?

5voto

Alex Perry Punkte 305

Erweitern von roryhewitt Antwort.

Ein Vorteil der Verwendung von .cmd-Dateien gegenüber DOSKEY besteht darin, dass diese "Aliasnamen" dann in anderen Shells wie PowerShell oder WSL (Windows-Subsystem für Linux) verfügbar sind.

Der einzige Haken bei der Verwendung dieser Befehle in bash ist, dass möglicherweise etwas mehr Einrichtung erforderlich ist, da Sie möglicherweise vor dem Aufrufen Ihres "Alias" einige Pfadmanipulationen durchführen müssen.

Zum Beispiel habe ich vs.cmd, das mein "Alias" für das Bearbeiten einer Datei in Visual Studio ist

@echo off
if [%1]==[] goto nofiles
start "" "c:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" /edit %1
goto end
:nofiles
start "" "C:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" "[PFAD ZU MEINEM NORMALERWEISEN SLN]"
:end

Das öffnet VS (in diesem Fall VS2012 - aber passen Sie es nach Ihrem Geschmack an) mit meinem "normalen" Projekt ohne eine angegebene Datei, aber wenn eine Datei angegeben ist, wird versucht, eine laufende VS-Instanz anzuhängen und die Datei "innerhalb dieses Projekts" zu öffnen, anstatt eine neue Instanz von VS zu starten.

Um dies von bash aus zu verwenden, füge ich dann eine zusätzliche Ebene der Indirektion hinzu, da "vs Myfile" nicht immer funktionieren würde

alias vs='/usr/bin/run_visual_studio.sh'

Das passt die Pfade an, bevor die vs.cmd aufgerufen wird

#!/bin/bash
cmd.exe /C 'c:\Windows\System32\vs.cmd' "`wslpath.sh -w -r $1`"

Auf diese Weise kann ich einfach

vs SomeFile.txt

In einer Eingabeaufforderung, Power Shell oder bash ausführen und es wird in meinem laufenden Visual Studio zum Bearbeiten geöffnet (was mir einfach das Leid erspart, mit VI-Befehlen oder ähnlichem umgehen zu müssen, wenn ich gerade stundenlang in VS bearbeitet habe).

3voto

Ein wenig überrascht, dass niemand daran gedacht hat, einfach die native Dateisystemfunktionalität dafür zu verwenden - das Erstellen eines symbolischen Links.

Führen Sie einfach den folgenden Befehl in einem Verzeichnis Ihrer Wahl aus, das bereits in Ihrem PATH referenziert ist - %USERPROFILE%\AppData\Local\Microsoft\WindowsApps ist, wo ich sie normalerweise erstelle, da sie standardmäßig zum Pfad hinzugefügt wird und das ist, was Windows anscheinend für die betriebssystemgesteuerten Ausführungsaliasse verwendet:

mklink npp.exe "c:\Program Files\Notepad++\notepad++.exe"

Dadurch wird ein symbolischer Link erstellt, der von GUI- und Befehlszeilen-Apps ausgeführt werden kann und keine zusätzlichen Tricks erfordert, um Parameter zu übergeben, etc.

3voto

Aarav Prasad Punkte 71

Erstellen Sie überall auf Ihrem System einen neuen Ordner, der für Aliase bestimmt ist. Erstellen Sie eine neue Datei mit dem Namen, den Sie dem Alias geben möchten, mit der .cmd-Erweiterung. Schreiben Sie alle Befehle in die Datei, wie zum Beispiel

cd /D D:\Ordner
g++ -o run etwas.cpp

Kopieren Sie den Pfad des Ordners.

Gehen Sie zu Einstellungen > System > Info > Erweiterte Systemeinstellungen > Umgebungsvariablen...

Finden Sie jetzt die Variable Path unter dem Abschnitt Systemvariablen. Klicken Sie einmal darauf und dann auf Bearbeiten. Klicken Sie nun auf Neu und fügen Sie den kopierten Text ein.

Klicken Sie auf OK, OK und OK. Starten Sie Ihre Powershell/cmd-Eingabeaufforderung neu und voilà, Sie haben Ihren persistenten Alias! Sie können denselben Ordner auch verwenden, um andere Aliase zu erstellen, ohne die Variable Path erneut ändern zu müssen!

2voto

BarathVutukuri Punkte 1255

Diese Lösung ist nicht ideal, aber erfüllt ihren Zweck in manchen Situationen.

Erstelle zunächst einen Ordner und füge ihn dem Systempfad hinzu. Gehe zum ausführbaren Programm, für das du ein Alias erstellen möchtest. Klicke mit der rechten Maustaste und wähle "Desktop senden" (Verknüpfung erstellen). Benenne die Verknüpfung in einen beliebigen Alias-Namen um. Nimm nun die Verknüpfung und platziere sie in deinem Ordner.

Vom Ausführen-Fenster aus kannst du direkt den Alias-Namen eingeben und das Programm wird für dich geöffnet. Aber vom Eingabeaufforderungsfenster aus musst du .lnk anhängen und die Eingabetaste drücken, dann wird das Programm geöffnet.

1voto

sunny moon Punkte 1257

Wenn Sie auf einer Verzeichnis-/Projektebene Aliase aktivieren möchten, versuchen Sie es mit folgendem:

  1. Erstellen Sie zuerst eine Stapeldatei, die nach einer Datei mit dem Namen aliases im aktuellen Verzeichnis sucht und Aliase daraus initialisiert. Nennen wir sie make-aliases.cmd

    @echo off
    if not exist aliases goto:eof
    echo [Aliases werden geladen...]
    for /f "tokens=1* delims=^=" %%i in (aliases) do (
       echo   %%i ^<^=^> %%j
       doskey %%i=%%j
    )
    doskey aliases=doskey /macros
    echo   --------------------
    echo   aliases ^=^> list  all
    echo   alt+F10 ^=^> clear all
    echo [Fertig]
  2. Erstellen Sie dann in dem Verzeichnis, in dem Sie sie benötigen, die Datei aliases im folgenden Format:

    alias1 = befehl1
    alias2 = befehl2
    ...

    zum Beispiel:

    b = nmake
    c = nmake clean
    r = nmake rebuild
  3. Fügen Sie dann den Speicherort von make-aliases.cmd Ihrer %PATH%-Variablen hinzu, um ihn systemweit zu machen oder behalten Sie ihn einfach an einem bekannten Ort.

  4. Lassen Sie ihn automatisch mit cmd starten.

    • Ich würde definitiv davon abraten, dafür HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun zu verwenden, da einige Entwicklungstools das AutoRun-Skript mehrmals pro Sitzung auslösen würden.

    • Wenn Sie ConEmu verwenden, könnten Sie einen anderen Weg gehen und das Skript von der Startaufgabe aus starten (Einstellungen > Start > Aufgaben), ich habe zum Beispiel einen Eintrag namens {MSVC} erstellt:

      cmd.exe /k "vcvars64 && make-aliases",

      und dann habe ich ihn im Explorer-Kontextmenü über Einstellungen > Integration mit Befehl: {MSVC} -cur_console:n registriert, sodass ich jetzt einen Ordner mit der rechten Maustaste anklicken und eine VS-Entwickler-Eingabeaufforderung darin starten kann, in der meine aliases automatisch geladen werden, wenn sie sich in diesem Ordner befinden.

      Ohne ConEmu möchten Sie möglicherweise einfach eine Verknüpfung zu cmd.exe mit dem entsprechenden Befehl erstellen oder einfach make-aliases jedes Mal manuell ausführen.

Sollten Sie Ihre Aliase vergessen, verwenden Sie das aliases-Makro, und wenn etwas schief geht, setzen Sie einfach die aktuelle Sitzung zurück, indem Sie Alt+F10 drücken, was ein integrierter Befehl in cmd ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X