Dateien im NetzwerkHallo, ich habe ein Skript, das eine bestimmte Datei auf einer Netzwerkadresse öffnet.Wenn der Computer mit diesem Netzwerk verbunden ist, ist alles in Ordnung. Aber wenn der Computer offline ist, möchte ich, dass das Skript sanft anhält, anstatt zu warten und zu warten, bis es erkennt, dass die Adresse nicht verfügbar ist. Gibt es eine Funktion zur schnellen Überprüfung der Remote-Dateiverfügbarkeit oder noch besser der Netzwerkverbindungsverfügbarkeit?
Danke
Matteo
Betreff: Dateien im NetzwerkHallo Dave, ich habe es versucht, aber es dauert immer noch viele Sekunden, wenn die Ressource nicht verfügbar ist.
Danke
Matteo
Betreff: Dateien im NetzwerkVersuchen Sie vielleicht, das Vorhandensein der Datei mithilfe von zu überprüfen Datei existiert bevor Sie versuchen, es zu öffnen?
Betreff: Dateien im NetzwerkVersuchen Sie, mit der Netzwerkfestplatte zu pingen. das ist das mittlere Beispiel. Ich kann es nicht vollständig testen, ohne jemanden zu bitten, ein Laufwerk auszuschalten ...
Betreff: Dateien im NetzwerkDanke, ich werde diese Möglichkeit prüfen. Eigentlich handelt es sich bei meiner Ressource um eine Datei auf einer Netzwerkfestplatte, daher ist Ping nicht genau der Befehl, den ich verwenden muss, aber das Konzept des Aufrufs eines Betriebssystembefehls ist klar.
Matteo
Betreff: Dateien im NetzwerkDieses Skript verwendet Ping, um ein Echo von einem Server zurückzubekommen. Der Text von Ping kann auf verschiedenen Betriebssystemvarianten etwas anders ausfallen und der Test für „Received = 1“ muss möglicherweise angepasst werden. n=1 bedeutet nur einmal pingen, w=100 bedeutet, nicht länger als 100 ms warten. Die Mac-Version wird anders sein, diese wurde (kaum) unter Windows getestet.
Ping ist nach dem Geräusch benannt, das U-Boot-Sonargeräte erzeugen … und dann auf das Echo zu achten. Aber im Gegensatz zu einem echten Echo sind bei ausgelasteten Rechnern auch andere Verzögerungen möglich. Ihr Ping kann problemlos fünf oder mehr Computer durchlaufen und das Echo wird ähnlich sein. Sie können mit Ping in einer „Dos-Box“ wie folgt spielen:
Using ping in a "dos box"Ping in einer „Dos-Box“ verwenden
isAvailable = Function( {resource},
{default local},
Contains( RunProgram( executable( "ping" ), options( {"-n 1 -w 100", resource} ), readfunction( "text" ) ), "Received = 1" ) != 0
);
// this succeeds in < .1 second
start = Tick Seconds();
jmp = isAvailable( "jmp.com" );
stop = Tick Seconds();
Show( jmp, stop - start );
// this fails in about 3 seconds
start = Tick Seconds();
fileserver = isAvailable( "jmpsserver" ); // leave out the back slashes and use the first name
stop = Tick Seconds();
Show( fileserver, stop - start );
// this fails in about .2 seconds
start = Tick Seconds();
nonesuch = isAvailable( "x" || Char( Random Integer( 1e15, 9e15 ) ) || ".com" );
stop = Tick Seconds();
Show( nonesuch, stop - start );
jmp = 1; - jmp.com funktioniert
Stopp - Start = 0,0333333333255723;
Dateiserver = 0; – das ist nicht unser Dateiservername
Stopp - Start = 2.26666666672099;
nonesuch = 0; – Das ist wahrscheinlich kein echter Webname
Stopp - Start = 0,0500000000465661;
Betreff: Dateien im Netzwerkok, dann möchten Sie vielleicht einen Systembefehl verwenden, um zu prüfen, ob die Netzwerkverbindung verfügbar ist, und ihn aufzurufen, bevor Sie den Rest des Skripts ausführen. Ich bin mir allerdings nicht sicher, ob das weniger lange halten würde. Einige Ideen sind in dem Beitrag geschrieben, den ich zuvor erwähnt habe.
Betreff: Dateien im NetzwerkDanke Martin. Ja, ich verwende „try“, aber wenn ich nicht mit dem Netzwerk verbunden bin, dauert es etwa 10 Sekunden, bis ich den Vorgang beende.
Matteo
Betreff: Dateien im NetzwerkÄhnlich wie beim folgenden Befehl löst dies beispielsweise eine Ausnahmemeldung oder -nummer aus, wenn die Ausführung fehlschlägt. Dann können Sie etwas anderes tun (Nachricht, alternative Datei, ...). Vielleicht finden Sie in diesem Thread noch weitere Tipps: Kann-JMP-eine-DOS-Exe-aufrufen
a = Try( Open( networkpath ),0 )<BR />
Betreff: Dateien im NetzwerkHallo Matteo,
Haben Sie die TRY- und/oder die THORW-Funktion ausprobiert? Sie können abfangen, wenn Sie die Datei nicht finden und herausspringen. Ich bin mir nicht sicher, ob das von Ihnen beschriebene Problem dadurch gelöst wird, da wahrscheinlich auch nach dem Pfad gesucht wird. Es ist jedoch einen Versuch wert, wenn Sie das noch nicht überprüft haben.
Martin