deflos
Goto Top

Mit IF per Batch auf Änderungsdatum Prüfen und weitere Aktionen vornehmen

Seid gegrüßt liebe Füchse ;)...

Ich möchte einen Batch schreiben, aber beherrsche da wenn es hochkommt nur die grundlagen und brauche ein paar Tipps!

Das Batch soll folgenden Ablauf automatisieren.

IF (Datei X auf Server <neuer> als Datei X auf C:\Y) {
1. del C:\DIR_A\Access*.* /s /q //Das hab ich hinbekommen!
2. xcopy der neuen zip File von \\Server auf \\Localhost
3. Zip Entpacken nach C:\DIR_A\
4. wenn ein Vorgang NICHT klappt Mail an mich.
} else {
nichts unternehmen
}


das wäre es "schon"

Falls von Interesse: Ich habe das Programm Wzcline zur Verfügung.


Wie ihr seht stecke ich da ziemlich in Kinderschuhen. Ich kann mir zzt. nicht mal vorstellen, wie eine Prüfung von Änderungsdatum zusammen mit der If-Abfrage zu kombinieren ist...


VG

Content-ID: 197348

Url: https://administrator.de/forum/mit-if-per-batch-auf-aenderungsdatum-pruefen-und-weitere-aktionen-vornehmen-197348.html

Ausgedruckt am: 26.12.2024 um 12:12 Uhr

marinux
marinux 21.01.2013 um 12:14:06 Uhr
Goto Top
Schau mal hier, da hatte ich ein ähnliches Problem:
Batch Vergleich eines Strings mit dem Output eines Befehls

Gruß
DefloS
DefloS 21.01.2013 aktualisiert um 15:38:42 Uhr
Goto Top
So sieht das Script jetzt aus, und es läuft... NICHT!

EDIT, nochmal überarbeitet:


[CODE]
net use g: \\<Server>\Support user:<DOMAIN>\<UserName> <user_pw_klartext>

IF \\<SERVER>\Support\AVS_Auswertung\Updates_NUR_AKTUELL\avs_Auswertungen.zip NEQ C:\avs32\access\avs_auswertungen.zip
(
XCOPY \\<Server>\Support\AVS_Auswertung\Updates_NUR_AKTUELL\avs_Auswertungen.zip C:\avs32
del C:\avs32\access\*.* /s /q
wzunzip -d avs_Auswertungen.zip c:\AVS32\Access\
)
[/CODE]


EDIT3:
grad den fail gefunden, meld mich gleich nochmal......
pieh-ejdsch
pieh-ejdsch 21.01.2013 um 22:35:53 Uhr
Goto Top
moin DefloS,

erst verbindest Du G: mit Netzwerk und danach nutzt Du kein G:?

:@echo off
setlocal
set "Server=Servername"  
set "Domain=%userdomain%"  
set "errorlog=D:\errorupdatelog.txt"  

net use g: \\%Server%\Support user:%DOMAIN%\%UserName% <user_pw_klartext>

xcopy /d G:\AVS_Auswertung\Updates_NUR_AKTUELL\avs_Auswertungen.zip C:\avs32\ 2>"%errorlog%" |find ":" ||goto :NoUpdate  
(
 rd /s /q C:\avs32\access
 wzunzip -d avs_Auswertungen.zip c:\AVS32\Access\
) 2>>"%errorlog%"  

:Noupdate
for %%i in ("%errorlog%") do if %%~zi gtr 0 echo Fehler && rem Sende Mail mit blat etc.  

Gruß Phil
DefloS
DefloS 22.01.2013 aktualisiert um 16:14:23 Uhr
Goto Top
Hallo,

erstmal vielen, vielen dank dafür!
Ich habe unsere Scripts zusammengelegt und hier das Ergebnis:

GROSSES EDIT - Ich war mal wieder Blind und hab kleine script Fails übersehen.

:@echo off
setlocal
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set "Server=192.168.11.9"
set "Domain=dom"
set "User=AVS_Check"
set "PW=pw"
set "errorlog=\\192.168.11.9\Support\AVS_Auswertung\Errorlog\errorupdatelog.txt"

net use N: \\%Server%\Support /user:%DOMAIN%\%User% %PW%


del C:\avs32\access\*.zip /s /q
del C:\avs32\access\*.xls /s /q
del C:\avs32\access\*.xlsx /s /q
C:\Programme\WinZip\wzunzip -e -o "c:\avs32\avs_auswertungen.zipx" c:\avs32\Access\
)

:NoUpdate
ipconfig | find "IP-Adress" >> %errorlog%
ipconfig | find "IPv4-Adress" >> %errorlog%
%UserName% >> %errorlog%

for %%i in ("%errorlog%") do if %%~zi gtr 0 echo Fehler && rem Sende Mail mit blat etc.
net use N: /delete > NUL



Ich fasse mal zusammen: im großen und ganzen läuft es, es gibt noch etwas feintuning, aber das wird schon.


VG & Danke nochmals