[前の記事]« レジストリキーから読み取った値をセットする方法
[次の記事][WIN2000] for in ( ) do .. の日本語(全角)文字処理にバグあり »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「NET VIEW」索引へ

電源が切れてるPCをスキップしたい

466.
電源が切れてるPCをスキップしたい
2004年05月14日(金) 10時52分
ponta
"PC-No1"で始まるマシン名を持つPCに対して特定の処理をすべく、
下記のようなスクリプトを作りました。
ここで、マスタブラウザの更新前にあるPCの電源が切られた場合、
そのPCはnet viewに出てしまうため、このPCの処理のところでタイムアウト待ちでかなり待たされます。
何か回避策はないでしょうか?
-------------
@for /f %%i in ('net view^|find "\\PC-No1"') Do @Call :Procedure %%i
@:GOTO :End

@:Procedure
@Set Computer=%1
@If "%Computer%" == "" @GOTO :End
やりたい処理
@GOTO :EOF

@:End 
468.
Re:電源が切れてるPCをスキップしたい
2004年05月15日(土) 00時25分
oo
>"PC-No1"で始まるマシン名を持つPCに対して特定の処理をすべく、
>下記のようなスクリプトを作りました。
>ここで、マスタブラウザの更新前にあるPCの電源が切られた場合、
>そのPCはnet viewに出てしまうため、このPCの処理のところでタイムアウト待ちでかなり待たされます。
>何か回避策はないでしょうか?
>-------------
>@for /f %%i in ('net view^|find "\\PC-No1"') Do @Call :Procedure %%i
>@:GOTO :End

>@:Procedure
>@Set Computer=%1
>@If "%Computer%" == "" @GOTO :End
>やりたい処理
>@GOTO :EOF

>@:End 

ping応答を拒否するようなセキュリティ設定がされてないならば、
:Procedure
@Set Computer=%1
@ping -n 1 %Computer:~2% | find "100%% loss" >NUL
@if %ERRORLEVEL%==0 GOTO :EOF
やりたい処理
@GOTO :EOF

例えばWANを含んだような大きな範囲でドメインを組んでいるなら一度のpingではエラーになるかもしれないので、-n の後の数字はもう少し大きくしたほうがいいかもしれません。その分時間は掛かりますけど。

あと、2行目の
>@:GOTO :End
は、@の直後に:があるため、GOTO 文ではなく、ラベル定義行とみなされるので、GOTOは実行されず下の文が続けて実行されてしまいますから、修正が必要です。少し前にも同じようにGOTOに:をつけて下の文を続けて実行したためにエラーになっていた人が居ました。処理内容もよく似ているんですがもしかして同じ人ですか?それとも、どこかにこういう間違ったサンプルが出回っているんでしょうか?
470.
Re2:電源が切れてるPCをスキップしたい
2004年05月15日(土) 08時23分
ponta
すみません、その同じ間違えした人は私です!。

前回質問したとき、別の解決策を頂いており、とりあえずそれで解決したので無限大さんのコメントを見てませんでした。
ラベル間違えによってどのような処理が起こるのかまで詳しく説明していただき、凄く参考になりました。
どうもありがとうございました。


>>@:GOTO :End
>は、@の直後に:があるため、GOTO 文ではなく、ラベル定義行とみなされるので、GOTOは実行されず下の文が続けて実行されてしまいますから、修正が必要です。少し前にも同じようにGOTOに:をつけて下の文を続けて実行したためにエラーになっていた人が居ました。処理内容もよく似ているんですがもしかして同じ人ですか?それとも、どこかにこういう間違ったサンプルが出回っているんでしょうか?

 
 


カテゴリー「NET VIEW」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年05月14日 15:02に投稿されたエントリーのページです。

ひとつ前の投稿は「レジストリキーから読み取った値をセットする方法」です。

次の投稿は「[WIN2000] for in ( ) do .. の日本語(全角)文字処理にバグあり」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート