![Wie kann ich feststellen, auf welche Datei mit der rechten Maustaste geklickt wurde?](https://rvso.com/image/1400003/Wie%20kann%20ich%20feststellen%2C%20auf%20welche%20Datei%20mit%20der%20rechten%20Maustaste%20geklickt%20wurde%3F.png)
Ich versuche, ein Skript zu schreiben und es dem Kontextmenü hinzuzufügen, das per Rechtsklick aufgerufen wird. Um die Elemente zum Menü hinzuzufügen, habe ich Folgendes verwendet: Windows: So fügen Sie dem Rechtsklickmenü eine Batch-Skriptaktion hinzu, außer statt
HKEY_CLASSES_ROOT\Directory\shell\MyScript1
Ich habe verwendet
HKEY_CLASSES_ROOT\*\shell\MyScript1
Sie würden also auf allen Dateien erscheinen, unabhängig von der Erweiterung.
Jetzt muss ich in der eigentlichen Bat-Datei herausfinden, auf welche Datei mit der rechten Maustaste geklickt wurde, damit ich sie als Eingabe verwenden kann. Gibt es eine Möglichkeit, den vollständigen Pfad der Datei für die spätere Verwendung in eine Variable einzufügen?
Antwort1
Wenn ein an ein Batch-Skript übergebenes Argument eine Datei ist, können Sie Umgebungsvariablen verwenden, um Dinge wie Pfad, Dateiname, Dateierweiterung usw. abzurufen. Beispiel:
@echo off
::
::If no parameter is passed, exit.
::
if [%~1]==[] echo Missing parameter! Script will exit... && exit /b
::
::If file does not exist, exit.
::
if not exist "%~1" echo File does not exist. Are you sure "%~1" is a file? && exit /b
echo.
echo File info
echo ---------
echo Path: %~dp1
echo Name: %~n1
echo Extension: %~x1
echo.
pause
exit /b
Dies funktioniert unabhängig davon, ob Sie die Datei in das Skript ziehen oder als Parameter von der Befehlszeile aus übergeben. Sie könnenErfahren Sie mehr über Argumente und ihre erweiterte Syntaxbei SS64.com.