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

Ordner automatisch verschieben wenn 30 Tage oder älter

Frage Entwicklung Batch & Shell

Mitglied: 42641

42641 (Level 1)

26.03.2007, aktualisiert 29.03.2007, 6967 Aufrufe, 4 Kommentare

Automatisierte verschiebung von Ordnern mit einer Datumsangabe als Name

Hallo Leute

Ich habe ne kleine Aufgabe die ich aber net gebacken bekomme. Wie beim letzten Mal geht es um eine Batch datei die
etwas tun soll und dies auch in einem Log ausgeben soll.
Diesmal wäre die Aufgabe wie Folgt.
Ich habe hier ein System das Daten in Ordner packt. Nun sollen alle Ordner die älter sind als einen Monat über ein
Netzlaufwerk auf einen anderen Rechner verschoben werden.
Diese Ordner sehen wie Folgt aus :

z.b

2007_02_01_09_24_05_564

darin befinden sich die dateien.

Ordner die nicht älter als ein Monat sind sollen bleiben, ältere sollen übers Netz verschoben werden.

Dazu soll in einem Logfile mit Datum un Uhrzeit zusehen sein ob die Ordner erfolgreich oder nicht erfolgreich verschoben wurden.

Hat jemand eine Lösung ?

Ich weiß das man irgendwie den Teil von 2007 bis 01 also 2007_02_01 abprüfen muss mit dem aktuellen Datum. Der Rest dahinter
is nicht wichtig.

Bin für jede Hilfe sehr dankbar.

MfG

Thomas S.
Mitglied: Biber
26.03.2007 um 18:17 Uhr
Moin tRipleT,

das ist eigentlich nicht so aufwändig.

Wie aus einem beliebigen Windows-Anzeigedatum Tag, Monat und Jahr extrahiert werden können, haben wir schon mehrfach im Forum stehen.
Und aus Jahr/Monat/Tag bastelst Du Dir ein Ansi-Datum (Format JJJJMMTT).

Beispiel: wenn die ein "echo %date%" am CMD-Prompt zurückgäbe "26.03.2007", dann hättest Du das mit
for /f "tokens=1-3 delims=." %i in ("date") do set /a "AnsiDate=%c%b%a"
...in eine "numerische" Variable %AnsiDate% mit dem Wert 20070326 sortiert.

Wenn Deine Ordner-Konvention so ist wie beschrieben, dann bekommst Du alle diese Ordner aufgelistet mit...
dir /a:d /b ????_??_??_??*
--oder-
dir /a:d /b 200?_??_??_??*

Also kannst Du dann mit zwei weiteren Anweisung das Ganze vergleichen:
01.
Set /a LastMonthAnsiDate=%AnsiDate% -100 
02.
for /f "tokens=1-3* delims=_" %i in ('dir /a:d /b ????_??_??_??*') do @if [%i%j%k] LEQ [%LastMonthAnsiDate%] move "%i_%j_%k_%l" x:\archiv\
So wäre es vom CMD-Prompt.
Im Batch zwei Prozentzeichen statt einem.

[Okay, die Skizze wären nun nicht exakt 30,00 Tage.... aber vielleicht muss das auch nicht...]

Gruss Biber
Bitte warten ..
Mitglied: bastla
26.03.2007 um 18:50 Uhr
Hallo tRipleT!

Und wenn's Dir das wert ist: so werden es genau 30 Tage (als Ersatz für Biber's erste Zeile verwenden):
01.
set days=30 
02.
echo Old=DateAdd("d",-%days%,Now)>%temp%\GetOldANSIDate.vbs 
03.
echo WScript.Echo Year(Old)^&Right("0"^&Month(Old),2)^&Right("0"^&Day(Old),2)>>%temp%\GetOldANSIDate.vbs 
04.
for /f %%d in ('cscript //nologo %temp%\GetOldANSIDate.vbs') do set /a LastMonthAnsiDate=%%d 
05.
del %temp%\GetOldANSIDate.vbs
Grüße
bastla
Bitte warten ..
Mitglied: 42641
29.03.2007 um 09:53 Uhr
Ok ich werd das mal versuchen.... thx
Bitte warten ..
Mitglied: Biber
29.03.2007 um 12:40 Uhr
Moin tRipleT,

bitte gib irgendwann nach dem Testen noch mal Feedback, ob es klappt.
Und nett wäre dann auch das Posten der final version für die Nachwelt.

Danke
Biber

[Edit] 7.5.2007. Da der Threadowner inzwischen ein "abgemeldetes Mitglied" ist, wird dieses Feedback wohl leider nicht mehr kommen.
Dann schliesse ich den Thread mal.
[/Edit]
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...