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

Batch - Verzeichnisname anhand vom Datum auslesen

Frage Microsoft Windows Tools

Mitglied: fhilsenbek

fhilsenbek (Level 1) - Jetzt verbinden

30.10.2008, aktualisiert 31.10.2008, 5694 Aufrufe, 7 Kommentare

Hi zusammen,

hab ein kleines oder größeres Problem.

Folgende Situation:

Datenbankserver mit Windows 2003 Standard R2 (keine SQL Datenbank sondern eine 4D Datenbank)

Nachts läuft ein Script welches den 4D Server beendet und dann eine Sicherung macht (per Batch).
Bei dieser Sicherung wird unter der Festplatte E: im Verzeichnis Bandsicherung ein neues Verzeichnis mit dem aktuellem Tagesdatum und der Uhrzeit angelegt, hier ist auch noch ein kleiner Fehler drin der uns aber weiterhin nicht stört.

Mittags um kurz nach 12 läuft ein anderes Script welches genau dieselbe funktion hat wie nachts das.

Struktur sieht wie folgt aus:

20081029_1225
20081029_4240
20081030_1225
20081030_4240

(Der Fehler welcher oben erwähnt wurde ist das das Verzeichnis 4240 am Ende heißt, und nicht 0420, ist aber nicht weiter schlimm für uns wie gesagt)

Wenn die Sicherung erfolgt ist wird durch die Batch Datei der 4D Server gestartet.

Nun möchten wir z. B. um 5:30 morgens ein zusätzliches Script laufen lassen welches anhand vom Datum und Uhrzeit des Verzeichnisses die Daten auf einen anderen Server kopiert.

Weiß jemand von euch ob es möglich ist den Verzeichnisnamen auszulesen der als letztes erstellt wurde.

Hier das Script welches Nachts ausgeführt wird zum Sichern der Datenfiles:


rem @echo off
set mydate=%date:~-4%%date:~-7,2%%date:~-10,2%
set mytime=%TIME::=%
set mytime=%mytime:~1,4%
set archiv=%mydate%_%mytime%
cd\
mkdir e:\Bandsicherung\%archiv%
cd\
cd Bandsicherung
cd %archiv%
mkdir P4_Daten
cd\
cd Bandsicherung
cd %archiv%
mkdir P4_Enterprise

robocopy e:\P4_Daten\ e:\Bandsicherung\%archiv%\P4_Daten\ /MIR /LOG+:"e:\robocopy\logfile\ber_dat_%archiv%.txt"
robocopy e:\P4_Enterprise\ e:\Bandsicherung\%archiv%\P4_Enterprise\ /MIR /LOG+:"e:\robocopy\logfile\ber_ent_%archiv%.txt"

goto START_P4

:START_P4

cd e:\P4_Enterprise\
cd Server
"P4_Enterprise Server.exe"

Ist einfach gehalten und funktioniert auch soweit, wir haben halt nur das Problem das wir diese Daten nicht auf einen anderen Server automatisch bekommen, da wenn wir den Kopiervorgang hinter den ersten setzen das ganze sich von 30 Minuten auf 4 Stunden aufbläht was die Kopierzeit angeht. Der Server muss halt um 6:30 wieder laufen, deshalb wollen wir das ganze in einem 2.ten Script machen.

Vielen Dank schonmal für die Hilfe

Florian
Mitglied: Biber
30.10.2008 um 16:13 Uhr
Moin fhilsenbeck,

den zuletzt angelegt Ordner in einem bestimmten Verzeichnis solltest Du so bekommen:
[zum Test am CMD-Prompt]
for /f %i in ('dir /b /A:d /tc /o:d X:\BestimmterOrdner\*' ) do set "neuesterOrdner=%i"
[im Batch jeweils 2 %-Zeichen stat eines vor den Zählvariablen]

Grüße
Biber
Bitte warten ..
Mitglied: fhilsenbek
30.10.2008 um 16:39 Uhr
Hi Biber,

zuerstmal danke für die schnelle Hilfe.

Hab das jetzt mal grad testen wollen, allerdings hab ich da ein kleines Problem mit der Batch.

Folgende Batch soll dann ausgeführt werden, allerdings übernimmt er den Inhalt von "%%i" beim xcopy Befehl nicht und kopiert deshalb dann auch nichts.

Hab schon ein bisschen was ausprobiert, mit und ohne "" im xcopy Befehl, hilft aber nix.
Weißt du was ich hier falsch mache

for /f %%i in ('dir /b /A:d /tc /o:d d:\bandsicherung\*' ) do set "neuesterOrdner=%%i"
pause
xcopy d:\bandsicherung\"%%i"\ d:\test\ /e
pause

Danke und Gruß

Florian
Bitte warten ..
Mitglied: Biber
30.10.2008 um 16:59 Uhr
Moin fhilsenbek,

die Lauf-Variable %%i ist nur gültig bzw existent, solange die FOR-Anweisung ausgeführt wird.
Deshalb habe ich ja den letzten Wert von %%i in eine Dauerhafte Variable neuesterOrdner gerettet.

Verwende also in dem Xcopy-Geraffel statt "%%i" die "%neuesterOrdner%".

Grüße
Biber
Bitte warten ..
Mitglied: fhilsenbek
30.10.2008 um 17:23 Uhr
Hi Biber,

vielen vielen Dank, funktioniert jetzt alles.

Beste Grüße

Florian
Bitte warten ..
Mitglied: bastla
30.10.2008 um 20:56 Uhr
Hallo fhilsenbek!

Vielleicht kannst Du ja das noch brauchen:
01.
set mytime=%TIME::=% 
02.
set /a mytime=10000 + %mytime:~,4% 
03.
set mytime=%mytime:~-4%
Grüße
bastla
Bitte warten ..
Mitglied: fhilsenbek
31.10.2008 um 11:57 Uhr
Hi bastla,

vielen Dank, werd ich gleich nächste Woche mal ausprobieren.

Grüße

Florian
Bitte warten ..
Mitglied: fhilsenbek
31.10.2008 um 13:33 Uhr
Hi,

kam doch jetzt schon dazu, klappt wunderbar, hab die Uhr einfach mal umgestellt zum testen

Danke nochmals

Gruß

Florian
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...