schmewell
Goto Top

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

Content-Key: 67876

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

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

Member: bastla
bastla Sep 04, 2007 at 16:53:10 (UTC)
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
Member: schmewell
schmewell Sep 05, 2007 at 09:55:33 (UTC)
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