よろしくお願いいたします。
前提・実現したいこと
目標としては
ping
を192.168.1.1~255に対して行う
これは並列的に行う
全てのping
が終了したとき
"unti"とecho
する
を実現したい
ベストアンサーから作成したソース
bat
1 2for /l %%i in (1,1,254) do (start ping 192.168.1.%%i /w 300) 3 4:LOOP 5rem tasklistからPING.EXEを探した結果をfindstrに検索対象として渡す 6rem findstrの結果をコマンドプロンプトに出力しないようnulに捨てる 7tasklist /fi "IMAGENAME eq PING.EXE"|findstr PING>nul 8rem findstrで検索文字が発見できなかった場合ERRORLEVELが1以外になる? 9rem 判定に便利なのに解説系サイトにはあまり載っていないのは不思議 10if not ERRORLEVEL 1 goto LOOP 11 12echo "unti" 13rem 本格的に並列処理を実装するにはwmicが良いんだろうけど今回のケースではこれで十分です 14rem はたらかないコマンドに付き合うほど今は時間がないので
発生している問題・エラーメッセージ
こんな企業がこんな方法を紹介してくれていたので試してみようとしたところ
C:\Users\a>wmic process create "tree.com c:" 形式が無効です。 ヒント: <assignlist> = <propertyname>=<propertyvalue> [, <assignlist>].
と怒られる
なんでやねん
並列処理化したいソースコード
bat:main.bat
1rem 死ぬほどDOS窓が開くので起動時びっくりしないよう注意 2for /l %%i in (1,1,254) do (start ping 192.168.1.%%i) 3 4echo "unti"
補足情報(FW/ツールのバージョンなど)
- Windows7/64bit SP
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/18 03:45
2019/03/18 04:10