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, 9500 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

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

Frage von clragon zum Thema Batch & Shell ...

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

Frage von crawnby zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...