Ich habe ein Tool erstellt, das dem Kontextmenü einige Dinge hinzufügt, wenn Sie mit der rechten Maustaste auf ein Verzeichnis, in den leeren Bereich eines Verzeichnisses oder auf ein Laufwerk klicken. Ich habe dies ausgiebig in Windows XP, Vista und 7 verwendet, aber jetzt, da ich auf Windows 8 aktualisiert habe, habe ich ein Problem mit dem Abrufen des Verzeichnisses, von dem aus der Befehl gestartet wurde.
Eines der Dinge, die ich hinzufüge, ist "Eingabeaufforderung hier", und ich habe dies mit den folgenden in einer INF-Datei erreicht:
HKCR,Directory\Background\Shell\CommandPromptHere\command,,,"""%SystemRoot%\System32\cmd.exe"" /c cmd /s /k ""VER && PUSHD ""%1"""""
Das fügt folgend in einem REG_EXPAND_SZ-Schlüssel hinzu:
"%SystemRoot%\System32\cmd.exe" /c cmd /s /k "VER && PUSHD "%1""
Da dies nicht funktionierte (cmd.exe konnte nicht gefunden werden), habe ich versucht, es durch Folgendes zu ersetzen:
cmd /c cmd /s /k "VER && PUSHD "%1"
In Windows 7, Vista und XP wird "% 1" zu dem Verzeichnis erweitert, auf dessen Hintergrund mit der rechten Maustaste geklickt wurde. In Windows 8 funktioniert es jedoch nicht. Selbst der Versuch, es wieder in die Befehlszeile zu übertragen, scheint nicht zu funktionieren.
Ich kann "% cd%" zum Erweitern bringen, wenn ich "ECHO% cd%" verwende, aber ich kann es scheinbar nicht zum Starten der Eingabeaufforderung verwenden ("PUSHD% cd%" funktioniert nicht).
Hat sich etwas an den Argumenten in Windows 8 geändert? Gibt es einen anderen Grund, warum es nicht funktioniert? Gibt es eine andere Möglichkeit, mit einem Registrierungseintrag eine Eingabeaufforderung im aktuellen Verzeichnis zu starten? Vermisse ich etwas?
Der Code ist hier: https://github.com/Ehryk/ContextMenuTools für weitere Details oder Vorschläge.
"%SystemRoot%\System32\cmd.exe" /c cmd /s /k "VER && PUSHD ""%1"""