Ich habe eine Reihe von Dienstprogrammen in installiert C:\program files (x86)\git\bin
, von denen viele integrierte Befehlszeilenfunktionen überschatten. Um nicht damit in Konflikt zu geraten, würde ich diesen Ordner lieber NICHT zum PATH hinzufügen, ich möchte jedoch diff a.txt b.txt
überall tippen und diff auf beiden ausführen können.
Dinge, die ich versucht habe:
- Ein
diff.exe
Unterschlüssel wurde hinzugefügt zu[HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths]
- Erstellt ein
diff.lnk
inC:\dev
(das auf meinem PATH ist) und.LNK
zu meinem PATHEXT hinzugefügt Erstellt
diff.bat
mit dem folgenden Code:@"C:\Program Files (x86)\git\bin\diff.exe" *$
Die einzige Methode, die funktioniert hat, war die letzte. Sie funktioniert zwar, diff
kann aber keine der Dateien finden, die ich über die Befehlszeile angebe.
Ebenso konnte die zweite Methode diff
ausgeführt werden, wenn ich mich gerade dort befand, C:\dev
nicht jedoch woanders.
Ich habe ein doskey
Skript, das als Alias-Maschine funktioniert (insbesondere npp=notepad++
beim Start mit cmd), aber ich möchte hierfür lieber nicht darauf zurückgreifen. Ich werde es tun, wenn es sein muss.
Irgendwelche Vorschläge? Irgendeine Idee, warum das oben genannte nicht funktioniert hat?
Antwort1
Irgendeine Idee, warum das oben genannte nicht funktioniert hat?
Ein paar.
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
hat keine Auswirkung aufcmd
, dacmd
es nichtShellExecuteEx
zum Ausführen von Programmen verwendet wird.- Das Erstellen einer
.lnk
Datei sollte funktioniert haben. Aus Ihrer Beschreibung geht hervor, dass die Aussage
ist in der Tat nicht wahr.C:\dev
ist auf meinemPATH
. diff.bat
hat nicht wie gewünscht funktioniert, da die Syntax, die Sie zum Ersetzen aller Positionsparameter verwendet haben, Kauderwelsch war.*$
ist nicht einmal ein versehentlicher Bashismus. Wie bereits erwähnt,%*
ist die korrekte Syntax für die Ausführung in Skripten, die voncmd
. (Es ist auch die richtige Syntax für Take Command, das%#
als Bonus unterstützt wird.)