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

Batchdatei, Ausführbarkeit beschränken.

Frage Entwicklung Batch & Shell

Mitglied: Admin-san

Admin-san (Level 1) - Jetzt verbinden

08.03.2007, aktualisiert 13.03.2007, 5117 Aufrufe, 9 Kommentare

Hallo,

ich möchte eine Batchdatei erzeugen, die nur bis zu einem bestimmten Datum ausführbar ist. Das Zieldatum (Datum bis zu dem die Batchdatei ausgeführt werden kann), soll das Erstellungsdatum einer .jpg-Datei sein, die auf jedem der entsprechenden Rechner vorhanden ist (ZDate.jpg). Das Zieldatum der Batchdatei mitgeben wäre allerdings auch schon schön. Die Lösung über eine auszulesende Datei (ZDate.jpg) finde ich allerdings eleganter. Die könnte ich nämlich über ein Up- bzw. Download ggf. aktuallisieren.

Das ganze sollte unter XP und 2000 laufen und natürlich international sein, also in England, Frankreich, Deutschland oder sonstwo, funktionieren.

Habe mich bereit durch etliche Foren und Tutorials gewühlt, leider erfolglos...

Freue mich auf Eure Beiträge und bedanke mich recht artig für Eure Bemühungen!


Gruß,
Admin-san
Mitglied: Biber
08.03.2007 um 16:19 Uhr
Moin Admin-san,

willkommen im Forum.

Im Bereich "Batch und Shell" findest Du im Tutorial Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch (siehe Link unten) eine GetAllDateTimeInfos.bat zum Copy & Pasten.

Wenn die irgendwo verfügbar gemacht werden könnte, wäre folgende Skizze denkbar:

01.
:: ---------snipp DeinBatch.bat 
02.
@echo off & setlocal 
03.
.... 
04.
If not exist d:\pfad\Zdate.jpg goto :eof 
05.
for /f %%i in ('dir /t:c d:\pfad\Zdate.jpg^|find /i "Zdate.jpg"') do call  GetAllDateTimeInfos.bat "%%i" /s /q 
06.
Set FileCreationDate=%JJ%%MM%%TT% 
07.
call  GetAllDateTimeInfos.bat "%date%i" /s /q 
08.
Set TodaysDate=%JJ%%MM%%TT% 
09.
GetAllDateTimeInfos.bat "%%i" /u 
10.
REM jetzt sollten in %todaysDate% und in %FileCreationDate% jeweils Strings im ANSI-Date-Format "20070308" stehen 
11.
Set /a Datediff=%FileCreationDate% - %TodaysDate% 
12.
If %DateDiff% LEQ 0  goto :eof 
13.
REM Andernfalls folgt jetzt das, was <i>eigentlich</i> ausgeführt werden soll 
14.
... 
15.
...
Gruss
Biber
Bitte warten ..
Mitglied: Admin-san
08.03.2007 um 16:55 Uhr
Moin-Moin Biber,

vielen Dank für Deine prompte Antwort. Werde es ausprobieren...

Mit Deinem Tutorial habe ich bereits "gearbeitet", konnte aber keine Ableitung zu meinem Problem herstellen (das Vergleichen von Daten). Werde es also, wie gesagt, jetzt nochmal probieren.

Bin guter Dinge.


Gruß und vielen Dank,
Admin-san
Bitte warten ..
Mitglied: Admin-san
12.03.2007 um 13:15 Uhr
Hallo Biber,

habe leider das Problem, dass das Auslesen der Datei (ZDate.jpg, Datum: 13.03.2007, also morgen) nicht wirklich funktioniert. Wenn ich mir das Ergebnis ausgeben lasse, dann sieht es wie folgt aus:

Environment variable 03" " yy not defined
Environment variable 2007"" not defined
INDate:"13.03.2007"
INTime:11:20:20,71
DateOrder=dd-mm-yy
KW=11
OSKW=11
DoW=3
DoY=72
cDoW=Tue
dd="
TT="
MM=~-2,2
hh=11
min=20
ss=20
ms=71

Habe schon etwas rumprobiert aber noch keine Lösung gefunden. Wollte das Verhalten mal auf anderen Rechnern testen, bin aber noch nicht dazu gekommen.

Mein System ist übrigens ein multilingual XP SP2(Systemumgebung: englisch). Einstellung zur Tastatur: "deutsch". Datumstrennzeichen: "/".


Nochmals vielen Dank für Deine Hilfe.


Gruß,
Admin-san.
Bitte warten ..
Mitglied: Biber
12.03.2007 um 13:34 Uhr
Moin Admin-san,

mein Fehler.

Ersetze bitte in dem Schnipsel oben die GetAllDateTimeInfo-Aufrufe wie folgt:

Streiche: .....GetAllDateTimeInfos.bat "%%i" ...
Setze: ....GetAllDateTimeInfos.bat %%i ...

[also den Parameter %%i OHNE Anführungszeichen]

Sorry
Biber
Bitte warten ..
Mitglied: Admin-san
12.03.2007 um 16:56 Uhr
Hallo Biber,

Entschuldige bitte, dass meine Antworten immer so zögerlich kommen. Aber ich bin zur Zeit gut beschäftigt und da fehlt mir leider etwas die Zeit .

Die Ausgabe ist jetzt okay. Super, vielen Dank dafür! Kurz vor oder nach der Division (muss ich mir noch angucken) wird das Fenster aber plötzlich geschlossen, obwohl bei der Division eigentlich nicht 0 rauskommen kann und damit die Batch beendet würde.

Naja, wolln mal schaun, wird schon.


Gruß,
Admin-san.
Bitte warten ..
Mitglied: Biber
12.03.2007 um 17:22 Uhr
Moin Admin-san,

gerade eben noch habe ich oben in meiner Skizze einen weiteren Tippfehler gesehen:

call GetAllDateTimeInfos.bat "%date%i" /s /q

muss natürlich heißen (ohne das "i" nach %date%)
call GetAllDateTimeInfos.bat "%date%i" /s /q

Also hier noch mal die (nach wie vor ungetestete Skizze im ganzen Satz:
01.
:: ---------snipp DeinBatch.bat 
02.
@echo off & setlocal 
03.
.... 
04.
If not exist d:\pfad\Zdate.jpg goto :eof 
05.
for /f %%i in ('dir /t:c d:\pfad\Zdate.jpg^|find /i "Zdate.jpg"') do call  GetAllDateTimeInfos.bat %%i /s /q 
06.
Set FileCreationDate=%JJ%%MM%%TT% 
07.
call  GetAllDateTimeInfos.bat %date% /s /q 
08.
Set TodaysDate=%JJ%%MM%%TT% 
09.
Call GetAllDateTimeInfos.bat /u 
10.
REM jetzt sollten in %todaysDate% und in %FileCreationDate% jeweils Strings im ANSI-Date-Format "20070308" stehen 
11.
Set /a Datediff=%FileCreationDate% - %TodaysDate% 
12.
If %DateDiff% LEQ 0  goto :eof 
13.
REM Andernfalls folgt jetzt das, was eigentlich ausgeführt werden soll 
14.
... 
15.
...
Nochmal sorry für die Schlamperei.

Gruss
Biber
Bitte warten ..
Mitglied: Admin-san
13.03.2007 um 12:28 Uhr
Hallo Biber,

so, nu läuft dat!

Ich bekomme jetzt die richtigen ergebnisse und in Abhängigkeit zur Zdate.jpg wird auch die eigentliche Routine aufgerufen - oder eben nicht. Bin echt begeistert, wusste garnicht, dass man das überhaupt mit einer Batch-Datei erreichen kann.
Habe allerdings noch das löschen der Umgebungsvariablen (Call GetAllDateTimeInfos.bat %%i /u
) nach unten verschoben.

Eine Sache ist leider noch nicht so schön (Funktion ist halt nicht alles). Nach den Call-Befehlen nuß am Bildschirm immer eine Taste zum fortfahren gedrückt werden. Der Parameter "/q" unterdrückt zwar die Bildschirmausgabe, dennoch muß anschließend eine Taste betätigt werden um das Script fortzuführen.
Habe leider auch hierzu nichts entsprechendes finden können. Weißt Du (oder auch jemand anderer hier im Forum) Rat?

Vielen Dank nochmal für Deine große Hilfe!


Gruß,
Admin-san
Bitte warten ..
Mitglied: Biber
13.03.2007 um 13:40 Uhr
Moin Admin-san,

freut mich, dass es jetzt soweit läuft...
Allerdings kann ich das Taste-Drücken-Müssen so auch nicht nachstellen...

Kannst Du bitte Deinen Batch as is noch mal posten?

Grüsse
Biber
Bitte warten ..
Mitglied: Admin-san
13.03.2007 um 14:35 Uhr
Hallo Biber,

war offensichtlich mein Fehler, nachdem ich nochmals "meine" GetAllDateTimeInfos.bat mit Deiner ersetzt habe funktioniert es jetzt tadellos. Habe wohl ein paar Haltepunkte zu viel gesetzt bzw. nicht wieder entfernt.
Sorry, dafür.

Nun bin ich wirklich rundum glücklich. Hut ab, vielen Dank und allerbeste Wünsche nach Bremen.

Das Forum werde ich wieterempfehlen. Kann mich nicht daran erinnern, woanders mal so prompt und kompetent (mal prompt, mal kompetent aber nie, wie hier, beides zusammen) unterstützt worden zu sein. Letztendlich ist das Dein Verdienst, Biber.


Gruß,
Admin-san
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...