Forum: PC-Programmierung Batchprofi gesucht - Doppelte Bedingung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von BatcherOderNichtBatcher (Gast)


Lesenswert?

Hallo Leute,

Für ein schnelles Backup nehme ich eine Batchdatei her, welche robocopy 
benutzt.
Aktuell wird abgefragt, ob das Verzeichniss XY am Laufwer XX existiert.
Wenn ja, dann wird Robocopy gestartet.
Dies sieht so aus:
1
@echo off
2
3
IF EXIST "E:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ E:\Anleitungen\ /E /PURGE /mir
4
IF EXIST "F:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ F:\Anleitungen\ /E /PURGE /mir
5
IF EXIST "G:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ G:\Anleitungen\ /E /PURGE /mir

Nun möchte ich aber auch prüfen, ob es die IP Adresse auch wirklich 
gibt, da ja sonst Robocopy hängen bleibt, weil ja das Ziel exisitiert, 
aber die Quelle nicht gefunden werden kann.
Wie kann ich da eine dopppelte Prüfung machen??
Kann mir da jedmand ein Beispiel dafür geben?

von Zeno (Gast)


Lesenswert?

Einen Ping auf die IP machen und den Errorlevel abfragen

von Mladen G. (mgira)


Lesenswert?

Hier wird so ein ping gemacht: 
https://stackoverflow.com/questions/3050898/how-to-check-if-ping-responded-or-not-in-a-batch-file

Allerdings nicht mit batch files (.bat), sondern mit .cmd, ersteres ist 
ja noch fuer 16 Bit OS gedacht, letzteres kann ein bisschen mehr, ist 
aber auch veraltet (PowerShell hat das abgeloest).

von Marc G. (marcm)


Lesenswert?

Vorher nen Ping hinschicken und auf die Rückmeldung (%errorlevel%) IFen 
und ggf. abbrechen

Edit : viiiel zu langsam... ;-)

: Bearbeitet durch User
von BatcherOderNichtBatcher (Gast)


Lesenswert?

Marc G. schrieb:
> Vorher nen Ping hinschicken und auf die Rückmeldung (%errorlevel%)
> IFen
> und ggf. abbrechen
>
> Edit : viiiel zu langsam... ;-)

Wie würde da der exakte Syntax ausehen?

von BatcherOderNichtBatcher (Gast)


Lesenswert?

So gehts nicht:
1
@echo off
2
3
IF EXIST "\\192.168.1.200\Anleitungen\"
4
if errorlevel 1 goto noping
5
echo Erreichbar
6
:noping
7
echo Nicht erreichbar
8
9
@pause


->>>> Syntax Error

von BatcherOderNichtBatcher (Gast)


Lesenswert?

Haaah. Hinbekommen.

IF NOT EXIST "\\192.168.1.200\Anleitungen\" goto noping
IF EXIST "E:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
E:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
IF EXIST "F:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
F:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
IF EXIST "G:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
G:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
IF EXIST "H:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
H:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
IF EXIST "I:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
I:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
IF EXIST "J:\Anleitungen\" ROBOCOPY \\192.168.1.200\Anleitungen\ 
J:\Anleitungen\ /E /PURGE /mir /R:2 /W:3
:noping

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

BatcherOderNichtBatcher schrieb:
> Wie würde da der exakte Syntax ausehen.

Siehe Anhang.

Aufruf "pingtest [IP]", z.B. "pingtest 192.168.178.1"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.