Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch - Datum als Ordnername (Datiensortierung in Datumsordner)

Frage Entwicklung Batch & Shell

Mitglied: e-mexx

e-mexx (Level 1) - Jetzt verbinden

06.07.2008, aktualisiert 18.10.2012, 9510 Aufrufe, 4 Kommentare

Lange ist es her, dass ich mit Batches gearbeitet habe.
Jetzt hab ich ein Problem zu loesen, dass mir viel manuelle Arbeit ersparen koennte.

Ich fand folgende aehnliche Artikel, komme damit jedoch nicht weiter!
--> "Erstellungsdatum auslesen und als neuen Dateinamen verwenden"
--> "Erstellungsdatum einer Datei per Batch auswerten?"
--> "Batch - Dateien mit Ordnernamen umbenennen"

Bisher hab ich die oben genannten Artikel versucht zu mergen, bin allerdings klaeglich gescheitert.

Nachdem ich allerdings heute bei dem schoenen Wetter den halben Sonntag verbracht habe,
ein Script zu basteln, wende ich mich an euch mit einem Hilferuf!

Ich suche eine Batch-Lösung, die sämtliche Dateien in einem Order (variabel: c:\temp\) nach Erstellungsdatum ausliest,
nach einem bestehendem Unterordner (YYYYMMDD*) im Ordner (d:\archiv\) sucht,
diesen Ordner basierend auf dem Erstellungsdatum der jeweiligen Datei erstellt, wenn noch nicht vorhanden (YYYYMMDD),
und die Dateien in die jeweiligen Ordner verschiebt.

Ich habe jeweils 1 bis x Dateien mit gleichem Datum und unterschiedlichen Zeiten und Datienamen in dem Ausgangsfolder.

Die Unterordner in d:\archiv\ werden später manuell erweitert (Bsp.: 20080315 Logfiles oder ... Mails Privat, etc.),
enthalten allerdings immer das Datum am Beginn.

Falls eine Datei nicht verschoben werden kann (weil zum Bsp. schon in einem Ordner mit dem entsprechenden Datum vorhanden), soll sie uebersprungen werden und bleibt im urspruenglichen Ordner bestehen.

Wie müsste so eine Batch aussehen?

Vielen Dank fuer eure Hilfe!
Mitglied: miniversum
06.07.2008 um 18:04 Uhr
Versuchs mal damit:
01.
@echo off 
02.
set "quelldir=c:\temp" 
03.
set "zieldir=d:\archiv" 
04.
 
05.
FOR /F "delims=" %%i in ('dir /A-D /B "%quelldir%"') do FOR /F "tokens=1-3 delims=. " %%a in ('echo %%~ti') do ( 
06.
 
07.
dir "%zieldir%\%%c%%b%%a*\" >NUL 2>NUL || ECHO md "%zieldir%\%%c%%b%%a\" >NUL 
08.
if not exist "%zieldir%\%%c%%b%%a*\%%~nxi" ECHO move "%%i" "%zieldir%\%%c%%b%%a\%%~nxi" 
09.
)
Es wird erstmal nur angezeigt was pasiert. Wenn alles so funktioniert wie du willst dann entferne die "ECHO"s einfach
Bitte warten ..
Mitglied: bastla
06.07.2008 um 20:52 Uhr
@miniversum
Vielleicht besser als Zeile 5:
01.
for /f "delims=" %%i in ('dir /a-d /b "%quelldir%"') do for /f "tokens=1-3 delims=. " %%a in ('dir /tc "%quelldir%\%%i"^|findstr /c:"%%i"') do (
Außerdem wird
01.
if not exist "%zieldir%\%%c%%b%%a*\%%~nxi"
wegen des "*" nicht funktionieren ...
Grüße
bastla
Bitte warten ..
Mitglied: e-mexx
06.07.2008 um 22:04 Uhr
Hallo tatuff, Miniversum,

Dank des Scripts von miniversum hat sich das Thema förmlich in Luft aufgelöst!

Vielen Dank nochmals!

Schöne Grüsse an die Scripting Meister!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst (Batch) Datum Sortier-Mechanismus (19)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby zum Thema Batch & Shell ...

Batch & Shell
gelöst Base64 Decode (Batch,VBS) (15)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...

LAN, WAN, Wireless
Wie Gäste ins Internet bringen? (15)

Frage von xSiggix zum Thema LAN, WAN, Wireless ...

Linux
gelöst Schmaler Scrollbalken in Python-Anwendung (14)

Frage von indi955 zum Thema Linux ...