ネットワーク上のファイルこんにちは。ネットワーク アドレス上の特定のファイルを開くスクリプトがあります。コンピュータがそのネットワークに接続されていれば、すべて問題ありません。 ただし、コンピュータがオフラインのときは、アドレスが利用できないことを理解するまでじっと待つのではなく、スクリプトを穏やかに停止させたいと考えています。 リモート ファイルの可用性、またはさらに優れたネットワーク接続の可用性を迅速に確認する機能はありますか?
ありがとう
マテオ
Re: ネットワーク上のファイルについてこんにちはデイブ、試してみましたが、リソースが利用できない場合はまだ何秒もかかります。
ありがとう
マテオ
Re: ネットワーク上のファイルについておそらく、次を使用してファイルの存在を確認してみてくださいファイルが存在しています開けようとする前に?
Re: ネットワーク上のファイルについてネットワーク ディスクで ping を実行してみてください。それが真ん中の例です。 誰かにドライブの電源を切ってもらわなければ、完全にテストすることはできません...
Re: ネットワーク上のファイルについてありがとう、この可能性を検討してみます。 実際、私のリソースはネットワーク ディスク上のファイルであるため、ping は使用する必要があるコマンドそのものではありませんが、OS コマンドを呼び出すという概念は明確です。
マテオ
Re: ネットワーク上のファイルについてこのスクリプトは ping を使用してサーバーからエコーを取得します。 ping からのテキストはさまざまな OS で少し異なる場合があり、「Received = 1」のテストは調整が必要な場合があります。 n=1 は ping を 1 回だけ行うことを意味し、w=100 は 100 ミリ秒を超えて待機しないことを意味します。 Mac バージョンは異なります。これは Windows では(ほとんど)テストされていません。
Ping は、潜水艦のソナーが発する音にちなんで名付けられました...その後、エコーを聞いてください。 ただし、実際のエコーとは異なり、ビジー状態のコンピューターでは他の遅延が発生する可能性があります。 ping は 5 台以上のコンピューターを簡単に通過する可能性があり、エコーは同様になります。 次のように「dos ボックス」で ping を実行できます。
Using ping in a "dos box"「dos ボックス」での ping の使用
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 は機能します
停止 - 開始 = 0.0333333333255723;
ファイルサーバー = 0; -- それは私たちのファイルサーバー名ではありません
停止 - 開始 = 2.26666666672099;
どれも = 0; -- これは実際の Web 名ではない可能性があります
停止 - 開始 = 0.0500000000465661;
Re: ネットワーク上のファイルについてわかりました。システム コマンドを使用してネットワーク接続が利用可能かどうかを確認し、スクリプトの残りの部分を実行する前にそれを呼び出すとよいでしょう。 ただし、それが持続時間が短くなるかどうかはわかりません。 以前紹介した記事にいくつかのアイデアが書かれています。
Re: ネットワーク上のファイルについてありがとうマーティン。 はい、「try」を使用していますが、ネットワークに接続していない場合、終了するまでに約 10 秒かかります。
マテオ
Re: ネットワーク上のファイルについてたとえば、次のコマンドと同様に、失敗すると例外メッセージまたは例外番号がスローされます。 その後、別のこと (メッセージ、代替ファイルなど) を行うことができます。 このスレッドには他のヒントも記載されています。 JMP は DOS Exe を呼び出すことができます
a = Try( Open( networkpath ),0 )<BR />
Re: ネットワーク上のファイルについてこんにちは、マッテオさん
TRY 関数や THORW 関数を試してみましたか。 ファイルが見つからずに飛び出すと捕まえられる可能性があります。 おそらくパスも検索されるため、これで説明した問題が解決するかどうかはわかりません。 ただし、まだ確認していない場合は、試してみる価値があります。
マーティン