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. Auf das aktuelle Datum ... Tage aufrechnen und das Datum dann in .txt Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Motorcross

Motorcross (Level 1) - Jetzt verbinden

31.01.2010, aktualisiert 18.10.2012, 6752 Aufrufe, 14 Kommentare

Hallo Administratoren

ich bin gerade dabei einen Lizenz Script in Batch zu schreiben.
Also zuerst wird durch "set /p a=" festgelegt wie viele Tage die Version gültig ist.
Mein Problem ist aber, dies mit dem aktuellen Datum zu verrechnen.
Hier ein Beispiel:
Heute ist der 31.01.2010 und die Lizenz soll 100 Tage gültig sein.
So jetzt sollen diese 100 Tage auf das Datum im Beispiel aufgerechnet werden und anschließend in eine .txt Datei abgespeichert werden.
Ich habe aber keine Ahnung wie ich das programmieren soll.
Wenn es möglich wäre, könnte man ja auch die verschieden langen Monate mit einberechnen.
Ich würde mich sehr freuen wenn jemand eine Idee hat.
Gruß Motorcross
Mitglied: AndreasBrecht
31.01.2010 um 12:06 Uhr
Du kannst mit VB sript auf die Funktion now zugreifen. Die liefert Dir das aktuelle Datum und Uhrzeit dazu zählst Du 100 dazu (da ist die Länger der Monate belanglos weil es Tage sind ) und dann kannst Du (musst Du aber nicht) für die Optik entweder mit Left oder mit FormatDateTime noch die Minuten und Sekunden abschneiden.
Bitte warten ..
Mitglied: TsukiSan
31.01.2010 um 12:10 Uhr
und so ausgeschrieben, wie AndreasBrecht es meint
01.
	Set FSO = CreateObject("Scripting.FileSystemObject") 
02.
	Set MyFile = FSO.CreateTextFile("c:\Zeit.txt", true) 
03.
	MyFile.WriteLine (Left(now + 100,11)) 
04.
	MyFile.Close
in Batch wird es etwas mehr an Schreiberei.

Gruss
Tsuki
Bitte warten ..
Mitglied: Motorcross
31.01.2010 um 12:12 Uhr
gibt es den auch eine Moglichkeit in Batch?
Ich brauche unbedingt Hilfe! (vielleicht hat bastla ja eine Idee)?
Bitte warten ..
Mitglied: TsukiSan
31.01.2010 um 12:29 Uhr
Naja, man könnte natürlich tricksen
Du erstellst eine Batch-Datei mit folgendem Code
01.
>"C:\MeinDatum.vbs" Echo Set FSO = CreateObject("Scripting.FileSystemObject") 
02.
>>"C:\MeinDatum.vbs" Echo Set MyFile = FSO.CreateTextFile("c:\Zeit.txt", true) 
03.
>>"C:\MeinDatum.vbs" Echo MyFile.WriteLine (Left(now + 100,11)) 
04.
>>"C:\MeinDatum.vbs" Echo MyFile.Close 
05.
Call "C:\MeinDatum.vbs" 
06.
del C:\MeinDatum.vbs /q  
07.
 
08.
for %%i in ("c:\Zeit.txt") do Echo %%i
Danach musst du nur noch die erste Zeile in Batch auslesen und dir Folgeschritte überlegen.
Dann wäre Batch und VBS vereint

Das Rechnen mit Datum in VBS o.ä. geht einfacher als in Batch!
Aber mal sehen, was bastla oder biber zaubern

Gruss
Tsuki

<Edit>
Zeile 5 vervollständigt
</Edit>
Bitte warten ..
Mitglied: Motorcross
31.01.2010 um 12:33 Uhr
Hallo,
was bedeutet in der 6. Zeile das /q ?
Bitte warten ..
Mitglied: TsukiSan
31.01.2010 um 12:36 Uhr
Hallo Motocross,

bevor ich zu "/q" komme muss in Zeile 5 noch
01.
Call "C:\MeinDatum.vbs"
eingefügt werden. Sorry!

Das "/q" bedeutet, dass ohne Nachfrage die erstellte "C:\MeinDatum.vbs" gelöscht wird (silent oder quiet)

Hoffe, es hilft dir!

Gruss
Tsuki
Bitte warten ..
Mitglied: Motorcross
31.01.2010 um 12:47 Uhr
Ja es hilft mir,eine Frage habe ich aber noch.
Ist dort eigerechnet das der Feburar nur 28 Tage hat?
Gruß Motorcross
Bitte warten ..
Mitglied: TsukiSan
31.01.2010 um 12:49 Uhr
bei der Datumsrechnung in VBS spielt die Länge der Monate keine Rolle.
Deswegen ist es ja einfacher. Man muss sich keinen Kopf darüber machen.
In Batch musst du das alles händisch machen und für die nächsten Jahre irgendwie selbst erfassen.

Gruss
Tsuki
Bitte warten ..
Mitglied: AndreasBrecht
31.01.2010 um 12:52 Uhr
Nochmal: Du addiesrt die Anzahl der Tage (100 und nicht 3 Monate und ein paar gequetschte) zu dem aktuellen Datum, das iÜ als serielle Zehl behandelt wird (und nur für uns dumme Humanoide in Jahr Moat und Tag übersetzt wird)
Bitte warten ..
Mitglied: TsukiSan
31.01.2010 um 12:58 Uhr
Also, ganz einfach:
Was macht VBS, wenn ich
01.
now + 3
schreibe?
Es rechnet zum heutigen Tage (31.01.2010) 3 Tage dazu. Heißt, das Ergebnis wäre Mittwoch, 03.02.2010.
VBS weiß die Anzahl der Tage im Monat und auch wann Schaltjahre sind (bis natürlich zu einem gewissen Zeitpunkt irgendwann in der Zukunf )
Es rechnet nur mit den Tagen!!!!! wie es die Monate und selbst Jahre im Detail berechnet, weiß ich nicht. Kann ich nur vermuten, dass es da viele Ifs und Elses und Selects und Modulas etc. geben kann.
Spielt aber für uns keine Rolle.VBS tut es einfach.
In deinem Fall mit der Zahl "100" brauchst du dir keine Gedanken zu machen, dass das Ergebnis nicht stimmt!

Gruss
Tsuki
Bitte warten ..
Mitglied: bastla
31.01.2010 um 14:18 Uhr
@AndreasBrecht
... für die Optik entweder mit Left oder mit FormatDateTime noch die Minuten und Sekunden abschneiden ...
... oder gleich "Date" anstelle von "Now" verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: bastla
31.01.2010, aktualisiert 18.10.2012
@Tsuki
"Batch-Zauberei" hätte ich erst gar nicht versucht (das war damals nur zum Spielen und nicht wirklich von mir verbrochen) - für Datumsberechnungen ist VBS definitiv die bessere Wahl, daher wäre es auch bei mir ein (temporäres) VBScript geworden ...

... wobei ich allerdings nur den Berechnungsteil ausgelagert und das Datum zur weiteren Verwendung wieder an den Batch zurückgegeben hätte, also etwa:
01.
set "G=%temp%\GetDate.vbs" 
02.
>"%G%" echo WScript.Echo Date + 100 
03.
for /f %%i in ('cscript //nologo "%G%"') do set "Datum=%%i" 
04.
del "%G%"
Noch als Anmerkung: Das Script in "C:\MeinDatum.vbs" zu speichern dürfte in vielen Fällen an fehlenden Schreibrechten scheitern, daher besser "%temp%" verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
01.02.2010 um 03:19 Uhr
@bastla,

das tolle an deinen Scripten ist (und an bibers auch!) wie Sachen nochmals "weggekürzt" werden können

Vielen Dank!

@Motorcross
ich hoffe, meine Antwort in meiner PM an dich hilft! Wenn nicht, einfach weiterfragen. So lernen wir gemeinsam

Gruss
Tsuki
Bitte warten ..
Mitglied: Motorcross
01.02.2010 um 09:31 Uhr
Ja genau. ich wollte euch allen noch einmal Danken!
Gruß Motorcross
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Eingabe in Datei schreiben (2)

Frage von MedicalAd zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...