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-Key: 545663

Url: https://administrator.de/contentid/545663

Printed on: April 23, 2024 at 11:04 o'clock

Member: PeterleB
PeterleB Feb 09, 2020, updated at Feb 10, 2020 at 08:16:10 (UTC)
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 ???
Member: PeterleB
PeterleB Feb 10, 2020 at 09:43:43 (UTC)
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
Member: PeterleB
PeterleB Feb 10, 2020 at 13:13:20 (UTC)
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