Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Auf voherigen Tag zugreifen

Frage Entwicklung Batch & Shell

Mitglied: Joe.Baer

Joe.Baer (Level 1) - Jetzt verbinden

05.06.2013 um 18:09 Uhr, 1136 Aufrufe, 2 Kommentare

Hallo zusammen,
leider finde ich nicht das was ich suche.
Ich erstelle jeden Tag mit einer batch-Datei eine .txt Datei.
Die Dateien haben immer das Tagesdatum bei der Erstellung:

set mydate=%date:~-4%-%date:~-7,2%-%date:~-10,2%

set "datei2=%mydate% xxxxx.txt"
if exist "%datei2%" move "%datei2%" "%datei2%.bak"
echo %mydate% %mytime% %1 >"%datei2%"
if exist "%datei2%.bak" type "%datei2%.bak">>"%datei2%"

Dies ist auch soweit in Ordnung.

Jetzt möchte ich einen Tag später auf die Datei zugreifen und diese in einen Ordner verschieben. Wie kann ich dies realisieren bzw. wie kann ich af die Datei zugreifen?

Dank & Gruß Joe.Baer
Mitglied: Biber
05.06.2013, aktualisiert um 19:00 Uhr
Moin Joe Baer,

willkommen im Forum.

Der CMD-Befehlsumfang beinhaltet ja nun leider nix, was in Richtung "Datumsarithmetik" geht - es gibt schlicht und einfach keinen Datentyp "Datum/Zeit" im Befehlsinterpreter.

Also musst du hier Umwege gehen und dazu kannst du über unsere Suchfunktion einige Varianten finden.

Mogliche Lösungsstrategie a)
Die CMD.exe kennt zwar kein "Datum" und daher auch kein "gestern" oder "morgen", aber mit verfügbaren Standardtools wie VBScript/JScript können das durchaus. Ein VBScript kannst du aus der Batchdatei heraus temporär erzeugen, aufrufen und das Ergebnis für deine Zwecke verarbeiten. Suche mal nach "gestern.vbs" oder "yesterday.vbs" hier in der Forumssuche.

Mögliche Strategie b)
Die "gestern" erzeugte Datei, die verschoben werden soll, ist ja immer die "jüngste" Datei (mit der Namenskonvention "201?-??-?? xxxxx,txt", Die Datei(en) kannst du mit dem "DIR /od"-Befehl nach Datum sortiert anzeigen lassen und mit einer FOR-Anweisung die jüngste/älteste rausflöhen. Suche dazu nach "neueste Datei/älteste Datei"

Mögliche Alternativ-Strategie)
Verzichte auf den Datumsstempel im Dateinamen - mache es stattdessen über einen Zähler, eine laufende Nummer im Dateinamen,
Von Dateien der Konvention "Log_1024.txt", "Log_1025.txt, ..." (oder allgemein: von namensbezogen eindeutig sortierbaren Dateien) kannst du immer die letzte vorhandene und die nächste freie ermitteln (oder "berechnen").

Grüße
Biber
Bitte warten ..
Mitglied: Endoro
05.06.2013 um 21:48 Uhr
Hi Joe.Baer,

wie von Biber schon augeführt, gibts in cmd keine Funktion Date2Number. Wenn du also bei deinem Arbeitspfad bleiben möchtest, musst du diese Funktion selbst implementieren.

Dazu benötigst du zu aller erst einen Anker im Ozean der Zeit. Von diesem Fixpunkt an beginnst du einfach die Tage zu zählen, denn die brauchst du ja. Nun kannst du bequem das Datum in Tage umrechnen. Die Wahl des Fixpunktes bleibt dir überlassen, anbieten würden sich Kaisers Geburtstag oder der Hochzeitstag der Grossmutter

Wenn du keinen gesteigerten Wert darauf legst, den Nullpunkt selbst festzulegen, kannst du natürlich auf eine Funktion aus dem Netz zurückgreifen. Ich jedenfalls greife mir dann gern diese.

Gruss!
Bitte warten ..
Ähnliche Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (34)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Router & Routing
Auf Drucker in Firmen LAN zugreifen (7)

Frage von dressler18 zum Thema Router & Routing ...

Windows Server
gelöst Dateien in einem Ordner nach XY Tagen löschen (3)

Frage von Adnan88 zum Thema Windows Server ...

Batch & Shell
gelöst Dateien verschieben die älter sind wie 1 Tag (3)

Frage von pblacky zum Thema Batch & Shell ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (31)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (14)

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