schmewell

automatisch ordner mit shell erstellen

hallo, vieleicht kann mir ja einer von euch helfen.

ich will das erstellungsdatum einer datei auslesen, damit einen ordner erstellen und die datei anschließend dort hinein kopieren.

das alles sollte mittels windows shell, batchdatei oder dergleichen funktionieren

ich dachte so an:

FOR %%a in (*.CMD) do mkdir %%~ta

FOR %%a in (*.CMD) do copy %%a %%~ta

leider nutzt er hierbei immer noch die uhrzeit und produziert dadurch fehler.

ich möchte hiermit die dateien in einem ordner in unterordner packen, deren namen dem erstellungsdatum entsprechen, sprich:

datei_x vom 01.01.2000 nach ordner 01.01.2000

datei_y vom 10.10.2005 nach ordner 10.10.2005

datei_z vom 01.01.2000 ebenfalls in den ordner 01.01.2000 ... usw.

danke
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 67876

Url: https://administrator.de/forum/automatisch-ordner-mit-shell-erstellen-67876.html

Ausgedruckt am: 27.06.2025 um 23:06 Uhr

bastla
bastla 04.09.2007 um 18:53:10 Uhr
Goto Top
Hallo schmewell und willkommen im Forum!

Vielleicht so:
@echo off
for %%a in (*.CMD) do for /f %%d in ('echo %%~ta') do (  
	if not exist %%d md %%d
	copy "%%a" %%d>nul  
)
Nur als Anmerkung: Eine Datumsschreibweise JJJJ-MM-TT finde ich übersichtlicher, daher als Alternative:
@echo off
for %%a in (*.CMD) do for /f %%d in ('echo %%~ta') do call :ProcessFile "%%a" %%d  
goto :eof
:ProcessFile
set Datum=%2
set Verz=%Datum:~-4%-%Datum:~-7,2%-%Datum:~-10,2%
if not exist %Verz% md %Verz%
copy %1 %Verz%>nul

Grüße
bastla
schmewell
schmewell 05.09.2007 um 11:55:33 Uhr
Goto Top
danke, klappt wunderbar face-smile

hab nur noch so geändert das er die ausführende datei ignoriert.

if not %1=="xyz.cmd" move %1 %Verz%>nul