peterleb
Goto Top

Windows: Ordner-Kontextmenü Script ausführen

Hallo,

ich habe für Ordner folgenden Befehl in die Registry eingefügt:

[HKEY_CLASSES_ROOT\Directory\shell\DateFolder]
@="Ordner mit Datumsname"  
"Icon"="D:\\Bilder\\Systemicons\\FolderDateAdd.ico"  

[HKEY_CLASSES_ROOT\Directory\shell\DateFolder\command]
@="\"C:\\Scripts\\DateFolder.bat\" \"%L\""  

Das Script soll dann im ausgewählten Ordner einen Unterordner mit dem Datum als Namen anlegen:

@echo off
setlocal
set mypath=%1
set mydate=%date:~-4%-%date:~-7,2%-%date:~-10,2%
chdir %mypath%
mkdir "%~d1%~p1%mydate%"  

Der neue Ordner wird aber nicht als Unterordner, sondern auf gleicher Ebene in der Baumstruktur angelegt.
Wie müßte das richtig gemacht werden?

Gruß
Peter

Content-ID: 545663

Url: https://administrator.de/forum/windows-ordner-kontextmenue-script-ausfuehren-545663.html

Ausgedruckt am: 09.04.2025 um 16:04 Uhr

PeterleB
PeterleB 09.02.2020, aktualisiert am 10.02.2020 um 09:16:10 Uhr
Goto Top
Aus irgendeinem Grund klappt es plötzlich, aber nur bei Rechtsklick auf den Ordner in der großen Inhaltsübersicht des Explorers, jedoch nicht bei Rechtsklick im Ordnerbaum links.
Weiß jemand, was genau mit dem Parameter %1 oder %L beim Rechtsklick übergeben wird?
Verwirrend!

PS:
Jetzt klappt es wieder nicht.
Ich vermute, es liegt am übergebenen Parameter.
Wenn im Verzeichnisnamen Leerzeichen sind, werden da möglicherweise mehrere Teile daraus gemacht ???
PeterleB
PeterleB 10.02.2020 um 10:43:43 Uhr
Goto Top
Wird also ein Monolog, schade.

Aber ich habe die Lösung gefunden.

%~d1%~p1 (Laufwerk und Verzeichnis) oder %~f1 (kompletter Pfad) übergeben keinen letzten Backslash "\"

@echo off
setlocal
set mypath=%1
chdir %mypath%
set mydate=%date:~-4%-%date:~-7,2%-%date:~-10,2%
          rem set mytime=%time:~-11,2%-%time:~-8,2%-%time:~-5,2%
mkdir "%~f1\%mydate%"  
         rem mkdir "%~f1\%mydate%_%mytime%"  

Vielleicht nützt es ja Jemandem.
Die auskommentierten Zeilen zeigen, wie man auch Zeitangaben in den Namen einbauen kann.

Viele Grüße
Peter
PeterleB
PeterleB 10.02.2020 um 14:13:20 Uhr
Goto Top
Noch eine Ergänzung.
Damit das Kontextmenü auch in der Explorer-Dateilistenansicht erscheint, muß auch dieser Eintrag ist die Registry:

[HKEY_CLASSES_ROOT\Directory\Background\shell\DateFolder]
@="Ordner mit Datumsname"  
"Icon"="D:\\Bilder\\Systemicons\\FolderDateAdd.ico"  
"Position"="Bottom"  

[HKEY_CLASSES_ROOT\Directory\Background\shell\DateFolder\command]
@="\"C:\\Scripts\\DateFolder.bat\" \"%V\""  

Wichtig ist, dass hier %V anstelle von %L als Parameter verwendet wird.

Gruß
Peter