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 Batch rechnen mit Datum

Mitglied: PascalS

PascalS (Level 1) - Jetzt verbinden

09.08.2007, aktualisiert 13.08.2007, 15884 Aufrufe, 7 Kommentare

Hallo zusammen,

ich habe zwar über die Suche ein paar ähnliche Beiträge gefunden, aber keinen, der mir 100%ig geholfen hat.

Mir stellt sich folgendes Problem:
Ich möchte für monatlich wiederkehrende Auswertungen eine Batch-Datei in Excel Makro einbinden, dass die ausgegebenen Analysen automatisch in Ordner verschiebt.
Diese Ordner müssen neu erstellt werden.

Mein Lösungsansatz war bisher folgender:

Ich habe per Batch einen Ordner erstellen lassen, den ich über das Auslesen der Systemzeit über "%date:~xy%" mit dem Format MMJJJJ benannt habe.


Es handelt sich um monatlich wiederkehrende Auswertungen, die beispielsweise im August erstellt wurden, jedoch unter dem Monat Juli abgelegt werden sollen.

Ich suche nun eine Möglichkeit, das Datum jeweils um einen Monat zurückzurechnen.

Habe mir schon überlegt Variablen for Monat und Jahr zu setzen und diese dann im Dateinamen zusammenzusetzen, nachdem ich den Monat um 1 reduziert habe.

Allerdings habe ich das noch nicht hinbekommen.

Außerdem würde ich mit dieser Methode Probleme beim Jahreswechsel bekommen.
--> 002008

Vielleicht hat ja schon mal jemand Erfahrungen damit gesammelt, oder kann mir weiterhelfen?!


Viele Grüße
Pascal
Mitglied: Markx
09.08.2007 um 18:55 Uhr
Hi,

mal auf die Schnelle.. du schreibst, das du im Excel selbst mit Makros arbeitest.. für dein Ziel wäre es aus meiner Sicht sinnvoll per VBA-Code die/den Ordner im Dateisystem zu erstellen.. kann dir jetzt im Moment nicht direkt mit Code-Beispielen helfen (hab mit VBA ne Weile nichts mehr machen müssen), aber du hättest erstmal ne Richtung zum recherchieren.. Meiner Ansicht nach ist's im VBA auch einfacher einen Monat "abzuziehen", sprich direkt mit Variablen vom Type "Date" zu arbeiten..

Gruß Markx
Bitte warten ..
Mitglied: DerBiba
10.08.2007 um 01:22 Uhr
Wenn du dir folgendes mal in ein Batchfile kopierst, kannst du damit (ab WinXP) dir entsprechende Ordner anlegen.
Die Berechnung des Vorjahres im Januar hat eben noch nicht hingehauen. Da muss ich nochmal drüber schlafen und poste das Ergebnis dann noch

01.
@echo off 
02.
 
03.
for /F "delims=. tokens=2" %%B in ("%date%") do Set "MON=%%B" 
04.
If [%MON%]==[01] SET "VMN=12" 
05.
If [%MON%]==[02] SET "VMN=01" 
06.
If [%MON%]==[03] SET "VMN=02" 
07.
If [%MON%]==[04] SET "VMN=03" 
08.
If [%MON%]==[05] SET "VMN=04" 
09.
If [%MON%]==[06] SET "VMN=05" 
10.
If [%MON%]==[07] SET "VMN=06" 
11.
If [%MON%]==[08] SET "VMN=07" 
12.
If [%MON%]==[09] SET "VMN=08" 
13.
If [%MON%]==[10] SET "VMN=09" 
14.
If [%MON%]==[11] SET "VMN=10" 
15.
If [%MON%]==[12] SET "VMN=11" 
16.
 
17.
SET AJR=%DATE:~-4% 
18.
SET /A VJR=%AJR% -1 
19.
 
20.
echo %mon%    Monat 
21.
echo %vmn%    Vormonat 
22.
echo %ajr%  Jahr 
23.
echo %vjr%  Vorjahr 
24.
echo. 
25.
 
26.
REM Zum Ordner mit Vormonat anlegen, das REM in der nächsten Zeile entfernen: 
27.
REM md C:\Monat%vmn% 
28.
 
29.
pause
Bitte warten ..
Mitglied: PascalS
10.08.2007 um 10:50 Uhr
Hi DerBiba,

danbke für die schnelle Antwort. Klingt eigentlich auf diese Weise auch besser, als die ganze Rechnerei.

Allerdings nutze ich an diesem Rechner leider immer noch Win 2k...

Gruß
Pascal
Bitte warten ..
Mitglied: Biber
10.08.2007 um 17:21 Uhr
Moin PascalS,

>Allerdings nutze ich an diesem Rechner leider immer noch Win 2k...
Macht nichts... der Code oben läuft ab Win NT... unter Win 2000 ist es kein Problem.

Gruß
Biber
Bitte warten ..
Mitglied: PascalS
10.08.2007 um 17:42 Uhr
Hallo Biber,

vielen Dank, es funktioniert.

Ich habe in der Vorletzten Zeile bei der Zielverzeichnisangabe das Monat in %ajr% geändert, dass ich das Format 200707 ausgegeben bekomme!

Reicht die Abfrage aus und den Wert auf das Vorjahr zurück zusetzen, wenn der Monat von 01 auf 12 gesetzte wird.

Also zum Beispiel der das Programm das Datum korrekt von 200801 auf 200712 setzt?

Viele Grüße
Pascal
Bitte warten ..
Mitglied: Biber
10.08.2007 um 18:15 Uhr
Moin PascalS,

wenn Du Markx' Hinweis überlesen willst und es mit native Batch angehst, dann...

Dann sollte es ausreichen.
Hat aber die Eleganz eines F.D.P-Wahlplakats.

Du solltest über die Forumssuche einige Kopien eines Anderthalb-Zeilen-Batch/VBS-Schnipsels namens "yesterdate" bzw. "gestern.vbs" finden, wo nun tatsächlich in einem Batch mit einem VBS-Aufruf wirkliche Datumswerte berechnet werden.

Dieses Aus-Textstrings-neuen-Datumsstring-Zusammenstoppeln kostet mehr Gehirnschmalz als ein Aufruf einer DateAdd()/DateDiff()-Funktion.

Grüße
Biber
Bitte warten ..
Mitglied: PascalS
13.08.2007 um 10:54 Uhr
Hi Biber,
habs nun gelöst.
Visual Basic ist natürlich viel eleganter und vor allem auch kürzer, aber mit der Batch Variante geht es nun auch.

Vielen Dank nochmal für die Hilfe
Gruß
Pascal
Bitte warten ..
Ähnliche Inhalte
PHP
Datum Rechner
gelöst Frage von michi-ffmPHP6 Kommentare

Hey Leute, evtl kann mir jemand helfen und mir folgenden Skript erklären und sagen wie ich das Jahr dazubekommen ...

Batch & Shell
(Batch) Datum Sortier-Mechanismus
gelöst Frage von clragonBatch & Shell19 Kommentare

Hallo zusammen. Ich bin schon etwas länger am Batch schreiben, und war schon oft uneingeloggt hier, und jetzt hab ...

Batch & Shell
Datum per batch ändern in Tagen
gelöst Frage von crawnbyBatch & Shell2 Kommentare

Hallo würde gerne per batch eine Änderung des Systemdatums um jeweils 7Tage vornehmen. Man Doppelklickt auf die Batch dann ...

Batch & Shell

Batch soll an einem bestimmten Datum eine Website öffnen

gelöst Frage von YanmaiBatch & Shell3 Kommentare

Hallo ihr Administratoren, ich brauche eine .bat Datei, die an einem bestimmten Datum eine Website öffnet. Hier einmal meine ...

Neue Wissensbeiträge
Sicherheit

Oracle gibt kritische Updates für diverse Produkte frei (16. Oktober 2018)

Information von kgborn vor 1 StundeSicherheit

Oracle hat zum 16. Oktober 2018 eine ganze Reihe an kritischen Updates für seine Produkte freigegeben. Eine Kurzübersicht mit ...

Windows 10
FYI: Fristen beim Windows 10 Downgrade-Recht
Information von kgborn vor 1 StundeWindows 10

Möglicherweise ist das bei euch bekannt - ich habe es gerade aus einem Newsletter eines OEMs herausgefischt. Beim Downgrade-Recht ...

CMS
Freie Wähler Bayern MySQL PW online
Information von sabines vor 4 StundenCMS3 Kommentare

Die Typo3 Installation der Freien Wähler Bayern scheint wohl längere Zeit nicht mehr angefasst und/oder fehlkonfiguriert zu sein. Nach ...

Sicherheit
Adminrechte dank Bug in Intel HD Graphics Treiber
Information von DerWoWusste vor 1 TagSicherheit

Intel HD graphics 4200 und neuer (4400, 4600 520,530,620, 630,) sind auf jeden Fall betroffen und bereinigte Treiber sind ...

Heiß diskutierte Inhalte
Debian
Linux debian 9 Installation
Frage von Green14Debian15 Kommentare

Hallo zusammen, ich habe mich ein wenig mit Debian auseinandergesetzt und möchte mir eine Standard-Installation als Grundlage für andere ...

Internet
Ist diese URL denkbar (Syntax)?
gelöst Frage von departure69Internet15 Kommentare

Hallo. Der Sohn eines Arbeitskollegen hat im Gymnasium EDV-Unterricht. Leider hat er in der letzten Klassenarbeit einen Fünfer geschrieben. ...

Windows Netzwerk
Gruppenrichtlinie für einen PC deaktivieren
gelöst Frage von Florian961988Windows Netzwerk14 Kommentare

Hallo, kleines Problem und immoment finde ich dazu keine Lösung oder mir fällt nicht ein, wie ich es suche ...

Festplatten, SSD, Raid
LSI 9361 Controller, versehentlich virtual Drive am Controller gelöscht
Frage von pixel24Festplatten, SSD, Raid12 Kommentare

Hallo zusammen, gibt es hier einen Experten der sich gut mit LSI MegaRAID auskennt? Ich habe versehentlich im Controller-BIOS ...