Deine Anforderungen
Im Wesentlichen haben Sie eine Aufgabe, die Sie nur ausführen möchten, wenn bestimmte Bedingungen TRUE sind :
- Der Prozess muss nur ausgeführt werden, wenn er an ein bestimmtes Netzwerk angeschlossen ist
- Der Prozess muss nur ausgeführt werden, wenn eine bestimmte Dateifreigabe verfügbar ist
Möglicherweise
Sie könnten eine IF- Logik verwenden und einfach den Status der Bedingungen prüfen und entsprechend handeln, ob Sie die restliche definierte Logik " beenden " oder " weiterbearbeiten " möchten.
Im Wesentlichen wird dies. . .
ping
das Standard-Gateway über seine IP-Adresse- Überprüfen Sie den Arp- Cache auf die MAC-Adresse des an FindStr weitergeleiteten Standard-Gateways
- Wenn die MAC-Adresse dann nicht gefunden wird
EXIT
- Wenn die MAC-Adresse gefunden wird , fahren Sie mit der Verarbeitung fort
- Überprüfen Sie, ob die UNC-Freigabe vorhanden ist
- Wenn die UNC-Freigabe dann nicht vorhanden ist
EXIT
- Wenn die UNC-Freigabe existiert , fahren Sie mit der Verarbeitung fort, d. H. Der Rest der Logik
Voraussetzungen
Rufen Sie die IPv4-Adresse des Standard-Gateways vom
ipconfig
Befehl abRufen Sie die physische Mac-Adresse von der IP-Adresse des Standard-Gateways ab
- Führen Sie einen
ping
Befehl für die IP-Adresse des Standardgateways aus - Führen Sie einen
arp -a
Befehl aus, und notieren Sie sich diePhysical Address
IP-Adresse des Standard-Gateways, deren IP-Adresse übereinstimmt
- Führen Sie einen
Batch-Skript
Offensichtlich sind die GatewayIP=
, GWMacAddr=
und FolderShr=
Variablenwerte müssen mit genauen Werte eingestellt werden für diese wie erwartet-I zu arbeiten, getestet und bestätigt es von meiner Seite habe.
@ECHO ON SET GatewayIP=192.168.1.254 SET GWMacAddr=e1-c3-5b-ed-4d-61 SET FolderShr=\\machinename\sharename ping -n 02 %GatewayIP% arp -a | findstr /c:"%GWMacAddr%" IF NOT %ERRORLEVEL%==0 EXIT IF NOT EXIST "%FolderShr%" EXIT <Rest of batch logic here since both checks above passed> EXIT