Testen Sie, ob ein freigegebener Ordner mit einem Timeout in einer Batchdatei vorhanden ist

484
Mark Deven

Ich habe den folgenden Befehl verwendet, um zu testen, ob ein freigegebener Netzwerkordner vorhanden ist. if exist \\192.168.1.2\SharedFolder\ echo EXISTSWenn er jedoch nicht vorhanden ist, dauert es etwa 15 Sekunden, bis er herausgefunden hat. Gibt es eine Möglichkeit, diesem Befehl ein Timeout hinzuzufügen? Ich möchte wirklich nur drei Sekunden lang versuchen.

0
Nein, es ist OS-Timeout. Das Betriebssystem versucht, die Ressource synchron zu überprüfen, sodass die Stapelverarbeitung freigegeben wird. Und keine Möglichkeit, ein Timeout für den Befehl IF EXIST einzurichten. Akina vor 5 Jahren 0

1 Antwort auf die Frage

1
Alex

Ich denke, Sie müssen zuerst prüfen, ob der Remote-PC aktiv ist, und dann versuchen, eine Verbindung herzustellen.

@echo off  REM Try for 3 seconds if remote PC is alive ping 192.168.1.2 -n 2 -w 400 2>&1 >nul  IF %ERRORLEVEL% NEQ 0 goto OnExit goto Success  :OnExit echo 192.168.1.2 is down goto End  :Success  echo Remote computer is alive. Checking if share is available... IF EXIST \\192.168.1.2\SharedFolder\ ( echo SharedFolder is available. ) ELSE ( echo SharedFolder is unavailable. )  :End REM pause 
Das Programm, das ich verwende, bestimmt bereits Live-Computer im Netzwerk. Nur einer von ihnen hat jedoch einen freigegebenen Ordner. Mark Deven vor 5 Jahren 0
@MarkDodsons Es ist wichtig zu prüfen, ob der Remote-PC gerade aktiv ist, bevor die Verfügbarkeit der Remote-Freigabe versucht wird. Es gibt keinen Mechanismus, um die Zeitüberschreitung in der Anweisung "if exist \\ ip.ip.ip.ip \ Share" zu steuern, da es sich um die Zeitüberschreitung des Betriebssystems handelt. In meinem Beispiel überprüfe ich den Remote-PC mit dem Dienstprogramm "ping", bei dem ich das Zeitlimit mit der Option "-w" nach Belieben reduzieren kann und erst danach auf Remote-Freigabe prüfen kann. Alex vor 5 Jahren 0
OK. Ich verstehe, was du meinst, danke. Mark Deven vor 5 Jahren 0
Leider löst das immer noch mein Problem nicht. Geräte wie Drucker oder Chromecasts antworten beispielsweise mit Ping, dauern jedoch mit der if-Sache ewig. Gibt es ein Drittanbieter-Tool, das helfen könnte? Mark Deven vor 5 Jahren 0
Die meisten Drucker und Chromecasts können Ressourcen nicht über ein Windows-Netzwerk gemeinsam nutzen. Sie können Netzwerkscanner wie [nmap] (https://nmap.org/download.html) oder [advanced-ip-scanner] (https://www.advanced-ip-scanner.com/) verwenden Stellen Sie sicher, dass diese Geräte Windows-Sharing-Funktion haben. Alex vor 5 Jahren 0
Rock das kann funktionieren. Mark Deven vor 5 Jahren 0