Aliase in der Windows-Eingabeaufforderung

358

Ich habe hinzugefügt notepad++.exe meinem Pfad in Umgebungsvariablen .

Öffnet nun in der Eingabeaufforderung notepad++.exe filename.txtdie filename.txt. Aber ich möchte es einfach tunnp filename.txt die Datei öffnen.

Ich habe es versucht DOSKEY np=notepad++ . Aber es bringt nur einen bereits geöffneten Editor ++ in den Vordergrund, ohne die Datei zu öffnen. Wie kann ich die Datei öffnen?

Vielen Dank.

Romonov
quelle
2
Ändern Sie den Namen der ausführbaren Datei in einen beliebigen Namen. Sie können dies im Datei-Explorer tun!
IgorGanapolsky

Antworten:

442

Um zu Joshs Antwort hinzuzufügen,

Sie können die Alias ​​(s) mit den folgenden Schritten dauerhaft machen :

  1. Erstellen Sie eine .bat- oder .cmd-Datei mit Ihrem DOSKEY Befehlen .
  2. Führen Sie regedit aus und gehen Sie zu HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Fügen Sie den Eintrag String Value mit dem Namen AutoRunund dem vollständigen Wert hinzu Pfad Ihrer .bat / .cmd-Datei hinzu.

    Das %USERPROFILE%\alias.cmdErsetzen des Anfangssegments des Pfads durch %USERPROFILE%ist beispielsweise für die Synchronisierung zwischen mehreren Computern hilfreich.

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

Fügen Sie unter Windows 10HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor stattdessen den Eintrag zu hinzu .

Der Vollständigkeit halber finden Sie hier eine Vorlage, um die Art der Aliase zu veranschaulichen, die möglicherweise nützlich sind.

@echo off

:: Temporary system path at cmd startup

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

:: Add to path by command

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

:: Commands

DOSKEY ls=dir /B
DOSKEY sublime=sublime_text $*  
    ::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd

:: Common directories

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

  • Beachten Sie, dass die $*Syntax sowohl nach einer Verzeichniszeichenfolge als auch nach einer ausführbaren Datei funktioniert, die Argumente enthält. Im obigen Beispiel dropbox researchverweist der benutzerdefinierte Befehl auf dasselbe Verzeichnis wie research.
  • Wie Rivenfall betonte, ist es eine gute Idee, einen Befehl einzufügen, mit dem die alias.cmdDatei bequem bearbeitet werden kann. Siehe aliasoben. Wenn Sie sich in einer Cmd-Sitzung befinden, geben Sie ein cmd, um cmd neu zu starten und die alias.cmdDatei neu zu laden .

Als ich im Internet nach einer Antwort auf die Frage suchte, konzentrierten sich die Diskussionen entweder nur auf die Persistenz oder nur auf die Verwendung von DOSKEY. Ich hoffe, dass jemand davon profitiert, dass diese beiden Aspekte hier zusammen sind!


Hier ist eine .regDatei, die Ihnen bei der Installation von hilft alias.cmd. Es ist jetzt als Beispiel für einen Dropbox-Ordner festgelegt, wie oben vorgeschlagen.

Windows Registry Editor Version 5.00

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

Für Einzelbenutzeranwendungen reicht das oben Genannte aus. Es gibt jedoch Situationen, in denen geprüft werden muss, obalias.cmd der Registrierungsschlüssel zuerst vorhanden ist. Siehe Beispiel unten.

In einer C:\Users\Public\init.cmdDatei, in der potenziell benutzerübergreifende Konfigurationen gehostet werden:

@ECHO OFF
REM Add other configurations as needed
IF EXIST "%USERPROFILE%\alias.cmd" ( CALL "%USERPROFILE%\alias.cmd" )

Der Registrierungsschlüssel sollte entsprechend C:\Users\Public\init.cmdoder mithilfe der .regDatei aktualisiert werden:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\Users\\Public\\init.cmd"
Argyll
quelle
2
genau das, was ich brauchte; funktioniert perfekt; Ich empfehle, einen Doskey hinzuzufügen, um die Datei
env.cmd
8
Das ist naiv und ineffizient. Die Autorun-Batch-Datei wird für jede Instanz von cmd.exe ausgeführt, einschließlich der systemFunktion. Es muss beendet werden, wenn eine bestimmte Variable (z AUTORUN. B. ) definiert ist. Andernfalls richten Sie die Umgebung ( set AUTORUN=1) ein und richten Sie doskey in einem einzigen Durchgang mit der Option makrofile ein, anstatt doskey.exe auszuführen, um jeden Alias ​​zu definieren.
Eryk Sun
4
@eryksun kannst du ein weniger naives Beispiel posten oder verlinken? Ich weiß, wie man beendet, wenn Autorun definiert ist, bin aber verwirrt darüber, wie man es zuerst setzt oder deaktiviert, ohne CMD bereits ausgeführt zu haben.
Matt Wilkie
3
Was ist der Ersatz für HKEY_CURRENT_USER\Software\Microsoft\Command Processorheute? Ich kann diesen Weg nicht in regedit zu finden scheinen mehr
Jan
4
Ich mag das. Eine ähnliche Option ist das Einfügen des Autoruns : doskey /macrofile="%USERPROFILE%\alias". Und als nächstes fügen Sie die Aliase in die 'Alias'-Datei ein, ohne den' Doskey'-Teil. Eine Lösung, die ein Administrator verwenden könnte, um Autorun-Definitionen auf Aliase zu beschränken, die ein Benutzer selbst erstellen könnte. Verhindern, dass Benutzer andere Dinge automatisch ausführen.
user1708042
237

Sie müssen die Parameter übergeben, versuchen Sie Folgendes:

doskey np=notepad++.exe $*

Bearbeiten (als Antwort auf Romonovs Kommentar) F: Kann ich die Eingabeaufforderung auf irgendeine Weise merken, damit ich sie nicht jedes Mal ausführen muss, wenn ich eine neue Eingabeaufforderung öffne?

doskey ist ein Textbefehl, der vom Befehlsprozessor interpretiert wird (z. B. cmd.exe). Er kann den Status in einem anderen Prozess nicht ändern (insbesondere in einem Prozess, der noch nicht gestartet wurde).

Personen, die doskeyihre anfänglichen Befehls-Shell-Umgebungen einrichten, verwenden normalerweise die /KOption (häufig über eine Verknüpfung), um eine Batch-Datei auszuführen, die alle gängigen Einstellungen vornimmt (z. B. den Titel, die Farben usw. des Fensters festlegen).

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...
Josh Poley
quelle
7
Dies funktioniert für die Eingabeaufforderung, in der ich diesen Befehl ausführe. Aber wenn ich das Fenster schließe und eine neue Eingabeaufforderung öffne. Es erinnert sich nicht an den Befehl np. Gibt es eine Möglichkeit, die Eingabeaufforderung zu speichern, damit ich sie nicht jedes Mal ausführen muss, wenn ich eine neue Eingabeaufforderung öffne?
Romonov
5
Gleiches Verhalten ohne Änderung des Pfades:doskey npp="C:\Program Files (x86)\Notepad++\notepad++.exe" $*
Matt Bierner
5
doskey.exe hat nichts mit cmd.exe zu tun. Es legt einen Alias ​​für die aktuelle oder eine angegebene ausführbare Datei im Konsolenfenster fest, die von einer Instanz von conhost.exe gehostet wird. Konsolen-Aliase werden am Anfang einer Eingabezeile abgeglichen und ersetzt, bevor die Client-Anwendung (z. B. cmd.exe oder Powershell.exe) die Zeile liest. Sie können nicht generisch als Befehle verwendet werden, z. B. nicht in Batch-Dateien oder in Pipes.
Eryk Sun
Hallo, ich habe dies mit cmder verwendet, um phpstorm zu öffnen ... es öffnet phpstorm, aber es öffnet weiterhin mein zuletzt geöffnetes Projekt und nicht das Projektverzeichnis, in dem ich mich gerade befinde ... Wie kann ich das öffnen, in welchem ​​DIR ich mich befinde?
PA-GW
113

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

  1. Erstellen Sie einen Ordner mit dem Namen C: \ Aliases
  2. Fügen Sie Ihrem Pfad C: \ Aliase hinzu (damit alle darin enthaltenen Dateien jedes Mal gefunden werden).
  3. Erstellen Sie eine .bat- Datei in C: \ Aliases für jeden der gewünschten Aliase

Vielleicht übertrieben, aber im Gegensatz zu der (ansonsten ausgezeichneten) Antwort von @Argyll löst dies jedes Mal das Problem dieses Ladens.

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

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

Ihre np- Datei hätte nur Folgendes:

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

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

FWIW, ich habe ungefähr 20 Aliase (separate .bat-Dateien) in meinem C: \ Aliases-Verzeichnis - ich erstelle nur nach Bedarf neue. Vielleicht nicht das ordentlichste, aber es funktioniert gut.

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

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

Auf diese Weise können Sie Folgendes tun:

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

und es werden alle 3 Dateien geöffnet.

Roryhewitt
quelle
4
Ich persönlich benutze diese Methode schon lange. Dies ist eine sehr einfach zu handhabende Methode, wenn jemand nicht auf den Weg gehen möchte doskey.
Bantya
4
Ein Vorteil dieser Methode (Cmd-Dateien als Aliase) besteht darin, dass diese Cmds bei Verwendung von WSL (Linux-Subsystem für Windows) auch in Bash verfügbar sind. Obwohl Sie häufig (je nachdem, was Sie als Aliasing verwenden) eine Pfadmanipulation mit wslpath.sh oder ähnlichem durchführen müssen, bevor Sie die cmd-Datei aufrufen
Alex Perry
1
@roryhewitt Oh ja, die Angabe des vollständigen Pfades zum ls.exesollte auf jeden Fall funktionieren. Guter Punkt. Ich habe allerdings die Doskey-Alternative verwendet.
Qwerty
4
Möglicherweise möchten Sie% * anstelle von% 1 hinzufügen, um alle Argumente zu übergeben, anstatt nur das erste.
Mav
1
Großartig! Jetzt kann ich PHP haben, ohne es installieren zu müssen, nur Devilbox als Docker verwenden und hinzufügendocker exec --user devilbox dvlbx_php_1 php %*
Alvaro Flaño Larrondo
38

Alternativ können Sie verwenden, mit cmderdenen Sie Aliase wie Linux hinzufügen können:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
hthserhs
quelle
12
Obwohl dies die Frage nicht beantwortet. Für Menschen mit Linux-Hintergrund ist es wichtig zu verstehen, dass es eine Alternative zu Windows-CMDs gibt, die ihren unmittelbaren Anforderungen entspricht.
Joseph Casey
1
Es gibt einige Alternativen. Git für Windows enthält "git-bash".
Cowlinator
Informationen zum Hinzufügen eines Alias ​​in Cmder finden Sie hier .
JDHAO
Hallo, ich habe dies mit cmder verwendet, um phpstorm zu öffnen ... es öffnet phpstorm, aber es öffnet weiterhin mein zuletzt geöffnetes Projekt und nicht das Projektverzeichnis, in dem ich mich gerade befinde ... Wie kann ich das öffnen, in welchem ​​DIR ich mich befinde?
PA-GW
29

Da Sie Ihrer PATH-Variablen notepad ++. Exe hinzugefügt haben, ist dies besonders einfach. Erstellen Sie in Ihrem System32-Ordner eine Datei np.batmit dem folgenden Code:

@echo off
call notepad++.exe %*

Das %*gibt alle Argumente weiter, die Sie dem npBefehl geben notepad++.exe.

BEARBEITEN: Sie benötigen Administratorzugriff, um Dateien im System32-Ordner zu speichern, was für mich etwas wackelig war. Ich habe die Datei gerade woanders erstellt und manuell auf System32 verschoben.

Velixo
quelle
Ich habe bereits einen Ordner mit kleinen .bat-Dienstprogrammdateien, daher gefällt mir dies besser, als mit der Registrierung oder einer .cmd-Datei herumzuspielen
Rich
1
Ich habe es gerade versucht und es funktioniert nicht identisch mit dem direkten Aufruf von Notepad ++. Wenn Sie in dem Dateinamen, den Sie öffnen, Platzhalter verwenden und NPP direkt aufrufen, funktioniert dies, z. B. können Sie dies tun, "notepad++.exe *somefiles*"und passende Dateien werden geöffnet. Als ich das mit Ihrer vorgeschlagenen Batch-Datei versuchte, dh "npp *somefiles*"eine NPP-Instanz öffnete, die von mir übergebenen Dateien jedoch nicht. Irgendwelche Gedanken?
SSilk
14

Außerdem können Sie mit dem Befehl eine alias.cmd in Ihrem Pfad erstellen (z. B. C: \ Windows)

@echo %2 %3 %4 %5 %6 > %windir%\%1.cmd

Sobald Sie das getan haben, können Sie so etwas tun:

alias nameOfYourAlias commands to run 

Danach können Sie die Kommazeile eingeben

nameOfYourAlias 

Dies wird ausgeführt

commands to run 

ABER der beste Weg für mich ist nur den Pfad eines Programms hinzuzufügen.

setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M 

Und jetzt laufe ich erhaben als

subl index.html
Николай Михно
quelle
9

Konsolen-Aliase in Windows 10

Verwenden Sie Doskey.exezum Definieren eines Konsolenalias ein Makro oder verwenden Sie die AddConsoleAliasFunktion.

Doskey

doskey test=cd \a_very_long_path\test

Um auch Parameter zu übergeben, fügen Sie $*am Ende Folgendes hinzu :doskey short=longname $*

AddConsoleAlias

AddConsoleAlias( TEXT("test"), 
                 TEXT("cd \\<a_very_long_path>\\test"), 
                 TEXT("cmd.exe"));

Weitere Informationen finden Sie hier Konsolen-Aliase , Doskey , Parameter

Qwerty
quelle
7

Sie möchten einen Alias ​​erstellen, indem Sie einfach Folgendes eingeben:

c:\>alias kgs kubectl get svc

Created alias for kgs=kubectl get svc

Verwenden Sie den Alias ​​wie folgt:

c:\>kgs alfresco-svc

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
alfresco-svc   ClusterIP   10.7.249.219   <none>        80/TCP    8d

Fügen Sie einfach die folgende alias.batDatei zu Ihrem Pfad hinzu. Es werden einfach zusätzliche Batchdateien im selben Verzeichnis wie sich selbst erstellt.

  @echo off
  echo.
  for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
  echo @echo off > C:\Development\alias-script\%1.bat
  echo echo. >> C:\Development\alias-script\%1.bat
  echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
  echo Created alias for %1=%ALL_BUT_FIRST%

Ein Beispiel für die hier erstellte Batchdatei heißt kgs.bat:

@echo off 
echo. 
kubectl get svc %* 
Steaton
quelle
6

Eigentlich gehe ich noch einen Schritt weiter und lasse Sie in eine kleine Technik ein, die ich seit dem Programmieren auf einem Amiga verwendet habe. Auf jedem neuen System, das Sie verwenden, sei es persönlich oder beruflich, müssen Sie zunächst zwei Ordner erstellen: C:\BINund C:\BATCH. Ändern Sie dann Ihre Pfadanweisung, um beide am Anfang der Reihenfolge zu setzen C:\BATCH;C:\BIN;[rest of path].

Wenn Sie jedoch über kleine, nicht im Weg stehende Dienstprogramme verfügen, auf die Sie zugreifen müssen, um sie einfach in den C:\BINOrdner zu kopieren, befinden sie sich in Ihrem Pfad. Um diese Zuweisungen vorübergehend zu überschreiben, können Sie dem C:\BATCHOrdner eine Batchdatei mit demselben Namen wie die ausführbare Datei hinzufügen. Der Pfad findet sie vor der Datei in C: \ BIN. Es sollte alles abdecken, was Sie jemals tun müssen.

Heutzutage besteht der kanonisch korrekte Weg, dies zu tun, darin, eine symbolische Verbindung zur Datei herzustellen, aber das gleiche Prinzip gilt. Es gibt auch einen kleinen zusätzlichen Bonus. Wenn Sie etwas in das System einfügen möchten, das mit etwas in Konflikt steht, das sich bereits im Pfad befindet, wird durch das Einfügen in den Ordner C:\BINoder C:\Batcheinfach das Original vorweggenommen, sodass Sie Dinge entweder vorübergehend oder dauerhaft überschreiben oder Dinge in Namen umbenennen können, die Sie sind komfortabler mit - ohne das Original zu verändern.

David
quelle
1
Dies ist die gleiche Antwort wie bei Roryhewitt.
Jean-François Fabre
2
Nein, ist es nicht. Ich sagte 'eins besser'. Die integrierte Option zum Überschreiben oder Unterschreiben einer bereits vorhandenen Überschreibung. Die einfache Trennung von ausführbaren Dateien von Batch-Dateien. Und Rorys Lösung gibt nicht an, wohin im Ordner der Ordner gehen soll. Die meisten werden es daher am Ende des Weges setzen. Da seine Lösung am Ende statt am Anfang steht, werden Überschreibungen überhaupt nicht zugelassen. Rorys Lösung ist ungefähr die gleiche wie die Lösung, zu der ich ursprünglich vor 25 Jahren gekommen bin. Ich habe das Modell seitdem etwas verfeinert.
David
2
Wie auch immer. Leute, die einen Amiga benutzen, können nicht alle schlecht sein.
Jean-François Fabre
Fair genug :) In meinem Fall befindet sich der Aliase-Ordner am Anfang des Pfads, aber auf jeden Fall möchte ich persönlich die Standardeinstellung nicht überschreiben - meine Aliase haben immer unterschiedliche Namen. Also benutze ich 'dig2' und 'digx' als Aliase für 'dig', habe aber immer noch 'dig' verfügbar (ohne den Ordner angeben zu müssen). Auch +1 für Amiga :)
Roryhewitt
Schöne Erinnerungen, ich habe auch Fledermausdatei in Startsequenz umbenannt :)
Erdinç Çorbacı
5

Erweiterung der Antwort von Roryhewitt .

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

Das einzige Problem bei der Verwendung dieser Befehle in Bash ist, dass die Einrichtung möglicherweise etwas länger dauert, da Sie möglicherweise einige Pfadmanipulationen vornehmen müssen, bevor Sie Ihren "Alias" aufrufen.

zB habe ich vs.cmd, das ist mein "Alias" zum Bearbeiten einer Datei in Visual Studio

@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" "[PATH TO MY NORMAL SLN]"
:end

Was VS (in diesem Fall VS2012 - aber nach Geschmack anpassen) mit meinem "normalen" Projekt ohne angegebene Datei startet, aber wenn eine Datei angegeben wird, wird versucht, eine Verbindung zu einem laufenden VS herzustellen, das diese Datei "innerhalb dieses Projekts" öffnet, anstatt a zu starten neue Instanz von VS.

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

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

Dadurch werden die Pfade vor dem Aufruf von vs.cmd angepasst

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

Auf diese Weise kann ich es einfach tun

vs SomeFile.txt

Entweder in einer Eingabeaufforderung, Power Shell oder Bash, und es wird in meinem laufenden Visual Studio zum Bearbeiten geöffnet (was mein armes Gehirn davon abhält, sich mit VI-Befehlen oder ähnlichen Befehlen befassen zu müssen, wenn ich gerade stundenlang in VS bearbeitet habe).

Alex Perry
quelle
2

Diese Lösung ist nicht geeignet, dient aber in einigen Fällen dem Zweck.

Erstellen Sie zunächst einen Ordner und fügen Sie ihn Ihrem Systempfad hinzu. Wechseln Sie zur ausführbaren Datei des Programms, für das Sie einen Alias ​​erstellen möchten. Klicken Sie mit der rechten Maustaste und senden Sie sie an den Desktop (Verknüpfung erstellen). Benennen Sie die Verknüpfung in einen beliebigen Aliasnamen um. Nehmen Sie nun die Verknüpfung und platzieren Sie sie in Ihrem Ordner.

An der Eingabeaufforderung können Sie den Verknüpfungsnamen direkt eingeben und das Programm für Sie öffnen lassen. An der Eingabeaufforderung müssen Sie jedoch .lnk anhängen und die Eingabetaste drücken . Das Programm wird geöffnet.

BarathVutukuri
quelle
1

Natürlich würde ich mich nicht ausruhen, bis ich die bequemste Lösung von allen habe. Kombinieren Sie die vielen Antworten und Themen im riesigen Internet.

  • Wird bei jeder Instanz von automatisch geladen cmd
  • Benötigt kein Schlüsselwort DOSKEYfür Aliase

Beachten Sie, dass dies größtenteils auf Argylls Antwort und Kommentaren basiert. Lesen Sie es auf jeden Fall, um die Konzepte zu verstehen.

Wie es funktioniert?

1) Erstellen Sie eine Makrodatei mit Aliasnamen (oder eine bat / cmd-Datei, um auch andere Dinge auszuführen).
2) Registrieren Sie sie in der Registrierung, um sie auf jeder Instanz von cmd
  auszuführen. Sie können sie auch nur über eine Verknüpfung ausführen, wenn Sie möchten

Das ist alles

%userprofile%/cmd/aliases.mac
;==============================================================================
;= This file is registered via registry to auto load with each instance of cmd.
;================================ general info ================================
;= https://stackoverflow.com/a/59978163/985454  -  how to set it up?
;= https://gist.github.com/postcog/5c8c13f7f66330b493b8  -  example doskey macrofile
;========================= loading with cmd shortcut ==========================
;= create a cmd link with the following target :
;= %comspec% /k "(doskey /macrofile=%userprofile%\cmd\aliases.mac)"

alias=subl %USERPROFILE%\cmd\aliases.mac
hosts=runas /noprofile /savecred /user:QWERTY-XPS9370\administrator "subl C:\Windows\System32\drivers\etc\hosts" > NUL

ls=ls --color=auto $*
ll=ls -l --color=auto $*
la=ls -la --color=auto $*
grep=grep --color

~=cd %USERPROFILE%
cdr=cd c:\repos
cdd=cd c:\repos\dixons
cds=cd c:\repos\stekkie
cdu=cd c:\repos\uplus
cduo=cd c:\repos\uplus\oxbridge-fe
cdus=cd c:\repos\uplus\stratus

;============================= :end ============================
;= rem ******************************************************************
;= rem * EOF - Don't remove the following line.  It clears out the ';'
;= rem * macro. We're using it because there is no support for comments
;= rem * in a DOSKEY macro file.
;= rem ******************************************************************
;=

Jetzt haben Sie zwei Möglichkeiten:
a) Registrieren Sie nur die Makrofile.
B) Verwenden Sie eine reguläre cmd/batDatei, um auch beliebige Befehle auszuführen.
Benennen Sie die gewünschte um Autorun.

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] - manuell
  Autorun    REG_SZ    doskey /macrofile=%userprofile%\cmd\aliases.mac
  Autorun_    REG_SZ    %USERPROFILE%\cmd\env.cmd
%userprofile%/cmd/cmd-aliases.reg - oder über reg Datei
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="doskey /macrofile=%userprofile%\\cmd\\aliases.mac"
"Autorun_"="%USERPROFILE%\\cmd\\env.cmd"
%userprofile%/cmd/env.cmd Sie benötigen diese Datei nicht, wenn Sie sich für a) oben entschieden haben
:: This file is registered via registry to auto load with each instance of cmd.
:: https://stackoverflow.com/a/59978163/985454

@echo off
doskey /macrofile=%userprofile%\cmd\aliases.mac

:: put other commands here
Qwerty
quelle
0

Da hast du schon notepad++.exeim Weg. Erstellen Sie eine Verknüpfung in dem Ordner mit dem Namen npund zeigen Sie darauf notepad++.exe.

Shravan
quelle
0

Zuerst können Sie eine Datei mit dem Namen np.cmd erstellen und in den Ordner legen, der sich in der PATH-Suchliste befindet. Bearbeiten Sie dann die Datei np.cmd wie folgt:

@echo off
notepad++.exe
迷茫 的 量子
quelle
0

Wenn Sie Aliase pro Verzeichnis / pro Projekt aktivieren möchten , versuchen Sie Folgendes:

  1. Erstellen Sie zunächst eine Batchdatei, die nach einer Datei mit dem Namen aliasesim aktuellen Verzeichnis sucht, und initialisieren Sie Aliase daraus. Nennen wir siemake-aliases.cmd

    @echo off
    if not exist aliases goto:eof
    echo [Loading aliases...]
    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 [Done]
    
  2. Erstellen aliasesSie sie dann im folgenden Format , wo immer Sie sie benötigen:

    alias1 = command1
    alias2 = command2
    ...
    

    zum Beispiel:

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

  4. Lass es automatisch beginnen mit cmd .

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

    • Wenn Sie ConEmu könnten Sie einen anderen Weg gehen und das Skript aus dem Start - Task starten ( Settings> Startup>Tasks ), zum Beispiel, habe ich einen Eintrag namens{MSVC} :

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

      und dann im Explorer-Kontextmenü über Settings> Integration>mit registriertCommand: {MSVC} -cur_console:n , sodass ich jetzt mit der rechten Maustaste auf einen Ordner klicken und eine VS-Entwickler-Eingabeaufforderung darin mit meinem starten kannaliases automatisch geladenen , falls sie sich zufällig in diesem Ordner befinden.

      Ohne ConEmu möchten Sie möglicherweise nur eine Verknüpfung cmd.exemit dem entsprechenden Befehl erstellen oder einfach make-aliasesjedes Mal manuell ausführen .

Sollten Sie Ihre Aliase vergessen, verwenden Sie das aliasesMakro. Wenn etwas schief geht, setzen Sie einfach die aktuelle Sitzung zurück, indem Sie Alt+ drücken. Dies F10ist ein integrierter Befehl cmd.

sonniger Mond
quelle
-4

Die Verwendung von doskey ist der richtige Weg, wird jedoch zurückgesetzt, wenn das Eingabeaufforderungsfenster geschlossen wird. Sie müssen diese Zeile zu etwas wie .bashrc-Äquivalent hinzufügen. Also habe ich folgendes gemacht:

  1. Fügen Sie der Systempfadvariablen "C: \ Programme (x86) \ Notepad ++" hinzu
  2. Erstellen Sie eine Kopie von notepad ++. Exe (natürlich im selben Ordner) und benennen Sie sie in np.exe um

Funktioniert gut!

balajimc55
quelle