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-Key: 197348

Url: https://administrator.de/contentid/197348

Printed on: April 19, 2024 at 04:04 o'clock

Member: marinux
marinux Jan 21, 2013 at 11:14:06 (UTC)
Goto Top
Schau mal hier, da hatte ich ein ähnliches Problem:
Batch Vergleich eines Strings mit dem Output eines Befehls

Gruß
Member: DefloS
DefloS Jan 21, 2013 updated at 14:38:42 (UTC)
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......
Member: pieh-ejdsch
pieh-ejdsch Jan 21, 2013 at 21:35:53 (UTC)
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
Member: DefloS
DefloS Jan 22, 2013 updated at 15:14:23 (UTC)
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