Top-Themen

Aktuelle Themen (A bis Z)

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 Ordnerdatum soll - 3 Tage sein

Mitglied: matze-pe

matze-pe (Level 1) - Jetzt verbinden

05.02.2008, aktualisiert 07.02.2008, 4406 Aufrufe, 10 Kommentare

Hallo miteinander,
ich habe eine Script der mir alle Dateien bis auf die in den letzen 3 Tagen sichert.

im Script wird ein Ordner angelegt, der das heutige Datum als Ordnernamen nimmt. In dem Ordner befinden sich aber alle Dateien bis auf die in den letzen 3 Tagen.


Wie ändert man im Sckript, dass der Ordnernamen 2008_02_05 (-3 Tage) = 2008_02_02 heißt?



Hier mein Script:

01.
@echo off & setlocal
02.
 
03.
set jahr=%date:~-4%
04.
set monat=%date:~-7,2%
05.
set tag=%date:~-10,2%
06.
 
07.
 
08.
md D:\Sicherung\bis_%jahr%-%monat%-%tag%\
09.
 
10.
 
11.
set /a MindestAlter=3
12.
set "Quelle=C:\Sicherung\*.*"
13.
set "Ziel=D:\Sicherung\bis_%jahr%-%monat%-%tag%\"
14.
 
15.
set "AG=%temp%\Age.vbs"
16.
echo Sicherung: Fenster wird in wenigen Minuten automatisch geschlossen!
17.
echo -----------------------------------------------------------------------
18.
 
19.
echo A=DateDiff("d", CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments(0)).DateLastModified, Now):WScript.Echo A>"%AG%"
20.
for %%i in ("%Quelle%") do for /f %%a in ('cscript //nologo "%AG%" "%%i"') do if %%a gtr %MindestAlter% move "%%i" "%Ziel%\%%~ni%%~xi.txt"
21.
del "%AG%"


mfg
Matze-Pe


[Edit Biber] Auf <code> formatiert. [/Edit]
Mitglied: bastla
05.02.2008 um 17:05 Uhr
Hallo matze-pe!

Ich hoffe, dass es ist Dir recht ist, wenn das Ordnerdatum nicht mit -3 Tagen, sondern mit -%MindestAlter% Tagen ermittelt wird:
01.
@echo off & setlocal
02.
set /a MindestAlter=3
03.
set "Quelle=C:\Sicherung\*.*"
04.
 
05.
set "GD=%temp%\GetDate.vbs"
06.
echo D=DateAdd("d",-%MindestAlter%,Now):WScript.Echo Year(D)^&"_"^&Right("0"^&Month(D),2)^&"_"^&Right("0"^&Day(D),2)>"%GD%"
07.
for /f "tokens=1-3 delims=_" %%i in ('cscript //nologo "%GD%"') do set jahr=%%i&set monat=%%j&set tag=%%k
08.
del "%GD%"
09.
 
10.
set "Ziel=D:\Sicherung\bis_%jahr%-%monat%-%tag%\"
11.
md "%Ziel%" 2>nul
12.
 
13.
echo Sicherung: Fenster wird in wenigen Minuten automatisch geschlossen!
14.
echo -----------------------------------------------------------------------
15.
 
16.
set "AG=%temp%\Age.vbs"
17.
echo A=DateDiff("d", CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments(0)).DateLastModified, Now):WScript.Echo A>"%AG%"
18.
for %%i in ("%Quelle%") do for /f %%a in ('cscript //nologo "%AG%" "%%i"') do if %%a gtr %MindestAlter% move "%%i" "%Ziel%\%%~ni%%~xi.txt"
19.
del "%AG%"
Grüße
bastla
Bitte warten ..
Mitglied: Biber
05.02.2008 um 18:14 Uhr
Moin Matze-pe und bastla,

unbedeutender Vorschlag zur Vereinfachung:
Da diese Variablen %tag%, %monat% und %jahr% nun wirklich nicht benötigt werden, sondern nur EINE Variable mit dem "Heute - 3"-Verzeichnisnamen,
ginge es auch etwas schlanker...

01.
....( Ersatzzeilen für alles zwischen [Set "GD=..."] und [md "%Ziel%" 2>nul] inkl.
02.
set "GD=%temp%\GetDate.vbs"
03.
echo Wscript.echo dateadd("d", date, -%Mindestalter%) >%GD%
04.
for /f "tokens=1-3 delims=." %%i in ('cscript //nologo "%GD%"') do set "Ziel=D:\Sicherung\bis_%%k-%%j-%%i"
05.
del "%GD%"
06.
 
07.
md "%Ziel%" 2>nul
08.
 
09.
...
Grüße
Biber
Bitte warten ..
Mitglied: matze-pe
05.02.2008 um 18:17 Uhr
Hallo Bastla,

dein veränderstes Script passt nicht mehr, es kommt die Fehlermeldung:

"Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnug ist falsch.


[img]http://img212.imageshack.us/img212/6094/unbenanntki4.jpg[/img]



LG
Matze
Bitte warten ..
Mitglied: matze-pe
05.02.2008 um 18:34 Uhr
Hallo Ihr beiden,
vielen Dank erstmal an euch beiden, aber das Probelm besteht weiterhin, das der Dateinanemn nicht stimmt, siehe screenshot^^


LG
Matze
Bitte warten ..
Mitglied: bastla
05.02.2008 um 18:48 Uhr
Hallo matze-pe!

Anmerkung zu Deinem Screenshot:
Im CMD-Fenster lässt sich sehr einfach Text markieren und kopieren - dazu Rechtsklick auf das Systemmenü (ganz links in der Titelleiste) des CMD-Fensters und im Register "Optionen" den "QuickEdit-Modus" einschalten. Beim Beenden die zweite Option ("... für alle Fenster ...") wählen. Ab sofort kannst Du dann im CMD-Fenster mit der linken Maustaste markieren und durch Rechtsklick kopieren, bzw, wenn kein Text markiert ist, durch Rechtsklick den Inhalt der Zwischenablage einfügen. Dann noch den so kopierten Text zwischen <code>-Tags stellen und posten ...

Bevor Du das ausprobierst ändere aber bitte das "@echo off" in der ersten Batchzeile auf "@echo on" - dann sieht man/frau nämlich, wodurch der Fehler ausgelöst wird.

Da ich den eigentlichen Verschiebeteil unverändert übernommen habe, kann der Fehler eigentlich nur auf den Verzeichnisnamen zurückzuführen sein - daher kannst Du wahrscheinlich schon nach den ersten 3 Dateien den Batch abbrechen.

Na ja, schaun mer mal ...
@Biber
D'accord.

Eigentlich wollte ich gleich den gesamten Datumsstring passend formatiert ausgeben (was ich ja ohnehin mache), aber dann ist mir die Diskrepanz zwischen Beschreibung (Trennzeichen "_") und "set"-Zeile (Trennzeichen "-") aufgefallen, und daher wollte ich matze-pe die "gewohnten" Variablen bieten, um sich den endgültigen Verzeichnisnamen daraus selbst zusammenzusetzen - nixdestotrotz ist natürlich Dein Vorschlag eleganter.

Grüße
bastla
Bitte warten ..
Mitglied: matze-pe
06.02.2008 um 09:29 Uhr
Alles klar, vielen Dank.

Hat wunderbar funktioniert.


LG
Matze
Bitte warten ..
Mitglied: Biber
06.02.2008 um 09:41 Uhr
Moin matze-pe,

hab ich nicht verstanden.
Was war denn nun der Unterschied zwischen dem Skript, das den Fehler oben geworfen hat und dem, das wunderbar funktioniert?

Oder noch hilfreicher für alle MitleserInnen:
poste doch bitte noch mal die Version, die jetzt tatsächlich im richtigen Leben einsetzbar ist.

Danke
Biber
Bitte warten ..
Mitglied: matze-pe
06.02.2008 um 11:24 Uhr
Hallo,
der Fehler lag in der Pafdangabe.

Und ein kleiner Denkfehler ist noch drin, ist es möglich das Datum vom Ordner 4 Tage zurück zu setzen und die Dateien der letzten 3 Tage.

Beispiel: Heute haben wir den 6.2.08, die Dateien werden bis zum 02.02.08 gesichert und der Ordnernamen heißt bis_08-02-03


Ist es möglich das zu ändern?


Vielen Dank


LG
Matze
Bitte warten ..
Mitglied: bastla
06.02.2008 um 14:27 Uhr
Hallo matze-pe!

Etwa so:
01.
echo D=DateAdd("d",-%MindestAlter%-1,Now)...
Damit bleibt's immer noch variabel, ansonsten einfach:
01.
echo D=DateAdd("d",-4,Now)...
Grüße
bastla
Bitte warten ..
Mitglied: matze-pe
07.02.2008 um 09:17 Uhr
Wunderbar, hat geklappt

Vielen vielen Dank
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Statistik über den Tag
Frage von 94451Datenbanken

Hallo Liebe Admins, ich möchte gerne eine Statistik generieren, in der ich auf einer Job_Protokoll Tabelle Prüfe wieviele Jobs ...

Entwicklung
Input Text öffnet div tag
gelöst Frage von jochengEntwicklung22 Kommentare

Hallo Leute Ich suche nach einem ganz einfachen weg ein Div durch ein <input type text zu öffnen (nur ...

Sicherheit

Heute ist "Ändere dein Passwort" Tag

Information von transoceanSicherheit11 Kommentare

Moinsen, eigentlich wäre das ja ein passendes Freitagsthema. Über Sinn oder Unsinn streiten die Experten ja schon seit mehreren ...

Microsoft Office

Ecxel per Script bearbeiten jeden Tag

gelöst Frage von MilordMicrosoft Office15 Kommentare

Moin Zusammen, ich hoffe die Frage ist hier halbwegs richtig. Und zwar habe ich folgendes "Problem". Wir in der ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 2 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 4 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk33 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

LAN, WAN, Wireless
WLAN und Ausmessung - Eine Glaubensfrage?
Frage von ptr2brainLAN, WAN, Wireless23 Kommentare

Liebe Experten, als Sys-Admin habe ich mir schon öfter die Frage gestellt, ob es sich beim Thema WLAN und ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing22 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung19 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...