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

Ausgedruckt am: 29.03.2024 um 01:03 Uhr

Mitglied: 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
Mitglied: 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