552 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?

644voto

Argyll Punkte 7376

Um zu Josh's Antwort hinzuzufügen,

Sie können die Alias(es) mit den folgenden Schritten persistent machen,

  1. Erstellen Sie eine .bat oder .cmd Datei mit Ihren DOSKEY Befehlen.

  2. Öffnen Sie regedit und gehen Sie zu HKEY_CURRENT_USER\Software\Microsoft\Command Processor

  3. Fügen Sie einen String Value Eintrag mit dem Namen AutoRun und dem vollen Pfad Ihrer .bat/.cmd Datei hinzu.

    Zum Beispiel, %USERPROFILE%\alias.cmd, indem Sie das erste Segment des Pfads durch %USERPROFILE% ersetzen, ist nützlich für die Synchronisierung unter mehreren Computern.

Auf diese Weise werden die Aliase jedes Mal geladen, wenn cmd ausgeführt wird.

Für Windows 10 oder Windows 11, fügen Sie den Eintrag stattdessen zu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor hinzu.

(Für Windows 11, beachten Sie auch, dass die "Terminal App" standardmäßig auf PowerShell zeigt. Suchen Sie nach "cmd" für die Eingabeaufforderung.)

Zur Vollständigkeit hier eine Vorlage, um die Art von Aliasen zu veranschaulichen, die nützlich sein könnten.

@echo off

:: Temporärer Systempfad beim cmd-Start

set PATH=%PATH%;"C:\Program Files\Sublime Text 2\"

:: Zum Pfad hinzufügen per Befehl

DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\"
DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\"

:: Befehle

DOSKEY ls=dir /B $*
DOSKEY sublime=sublime_text $*  
    ::sublime_text.exe ist der Name der ausführbaren Datei. Durch Hinzufügen eines temporären Eintrags zum Systempfad müssen wir nicht mehr das gesamte Verzeichnis schreiben.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd

:: Häufige Verzeichnisse

DOSKEY dropbox=cd "%USERPROFILE%\Dropbox\$*"
DOSKEY research=cd %USERPROFILE%\Dropbox\Research\

  • Beachten Sie, dass die Syntax $* sowohl nach einem Verzeichnisstring als auch nach einer ausführbaren Datei, die Argumente entgegennimmt, funktioniert. So zeigt im obigen Beispiel der benutzerdefinierte Befehl dropbox research auf dasselbe Verzeichnis wie research.
  • Wie Rivenfall bemerkte, ist es eine gute Idee, einen Befehl einzuschließen, der das bequeme Bearbeiten der Datei alias.cmd ermöglicht. Siehe alias oben. Wenn Sie in einer cmd-Sitzung sind, geben Sie cmd ein, um cmd neu zu starten und die Datei alias.cmd neu zu laden.

Als ich im Internet nach einer Antwort auf die Frage suchte, schienen die Diskussionen entweder nur auf Persistenz oder auf die Verwendung von DOSKEY beschränkt zu sein. Ich hoffe, dass jemand von diesen beiden Aspekten profitieren wird, die hier zusammengeführt sind!


Hier ist eine .reg Datei, um Ihnen bei der Installation der alias.cmd zu helfen. Sie ist jetzt als Beispiel für einen Dropbox-Ordner eingestellt, wie oben vorgeschlagen.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"

Für Einzelbenutzeranwendungen reicht dies aus. Es gibt jedoch Situationen, in denen es erforderlich ist, zu überprüfen, ob alias.cmd zuerst im Registrierungsschlüssel vorhanden ist. Siehe Beispiel unten.

In einer Datei C:\Users\Public\init.cmd, die potenziell benutzerübergreifende Konfigurationen hostet:

@ECHO OFF
REM Fügen Sie bei Bedarf andere Konfigurationen hinzu
IF EXIST "%USERPROFILE%\alias.cmd" ( CALL "%USERPROFILE%\alias.cmd" )

Der Registrierungsschlüssel sollte entsprechend zu C:\Users\Public\init.cmd aktualisiert werden oder, unter Verwendung der .reg Datei:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\Users\\Public\\init.cmd"

291voto

josh poley Punkte 6706

Sie müssen die Parameter übergeben, versuchen Sie es so:

doskey np=notepad++.exe $*

Bearbeiten (in Antwort auf Romonovs Kommentar) F: Gibt es eine Möglichkeit, dass die Eingabeaufforderung sich erinnert, sodass ich dies nicht jedes Mal ausführen muss, wenn ich eine neue Eingabeaufforderung öffne?

doskey ist ein textueller Befehl, der vom Befehlsprozessor interpretiert wird (z. B. cmd.exe), er kann den Zustand in einem anderen Prozess nicht ändern (besonders nicht in einem, der noch nicht gestartet wurde).

Menschen, die doskey nutzen, um ihre Anfangsbefehls-Shell-Umgebungen einzurichten, verwenden in der Regel die Option /K (oft über eine Verknüpfung), um eine Stapeldatei auszuführen, die alle gemeinsamen Einrichtungen durchführt (zum Beispiel die Einstellung des Fenstertitels, Farben, usw.).

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...

221voto

roryhewitt Punkte 3657

Wenn Sie nur einige einfache Befehle ausführen möchten, können Sie diese Schritte befolgen:

  1. Erstellen Sie einen Ordner namens C:\Aliases
  2. Fügen Sie C:\Aliases Ihrem Pfad hinzu (so dass Dateien darin jedes Mal gefunden werden)
  3. Erstellen Sie eine .bat Datei in C:\Aliases für jede der gewünschten Aliases

Möglicherweise übertrieben, aber im Gegensatz zur (ansonsten ausgezeichneten) Antwort von @Argyll löst dies das Problem, dass dies jedes Mal geladen wird.

Zum Beispiel habe ich eine Datei namens dig2.bat mit folgendem Inhalt:

@echo off
echo.
dig +noall +answer %1

Ihre np Datei würde einfach folgendes enthalten:

@echo off
echo.
notepad++.exe %1

Fügen Sie dann einfach den Ordner C:\Aliases Ihrer PATH-Umgebungsvariable hinzu. Wenn Sie bereits CMD oder PowerShell geöffnet haben, müssen Sie sie neu starten.

Zum Verständnis, ich habe etwa 20 Aliases (getrennte .bat-Dateien) in meinem C:\Aliases-Verzeichnis - ich erstelle einfach neue, wenn nötig. Vielleicht nicht das Ordentlichste, aber es funktioniert gut.

UPDATE: Gemäß einem ausgezeichneten Vorschlag von Benutzer @Mav ist es sogar besser, %* anstelle von %1 zu verwenden, damit Sie mehrere Dateien an den Befehl übergeben können, z.B.:

@echo off
echo.
notepad++.exe %*

Auf diese Weise könnten Sie dies tun:

np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt

und es wird alle 3 Dateien öffnen.

45voto

Alternativ können Sie cmder verwenden, mit dem Sie Aliasnamen genau wie in Linux hinzufügen können:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*

36voto

Velixo Punkte 704

Angesichts der Tatsache, dass Sie notepad++.exe Ihrer PATH-Variablen hinzugefügt haben, ist es ganz einfach. Erstellen Sie eine Datei im System32-Ordner namens np.bat mit dem folgenden Code:

@echo off
call notepad++.exe %*

Das %* gibt alle Argumente weiter, die Sie dem np-Befehl geben, an den notepad++.exe-Befehl.

BEARBEITEN: Sie benötigen Administratorzugriff, um Dateien im System32-Ordner zu speichern, was bei mir etwas seltsam war. Ich habe die Datei einfach an anderer Stelle erstellt und manuell nach System32 verschoben.

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