[前の記事]« MS-DOSで下位メモリを少しでも空けたい
[次の記事]ファイル名の一括変更操作がうまくいかない »

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

▲カテゴリー「TASKKILL,START…サービス/タスクの起動/終了」索引へ
▲カテゴリー「UNIXコマンドとDOS/Windows」索引へ

BATファイル毎にプロセスIDを獲得したい

562.
BATファイル毎にプロセスIDを獲得したい
2005年06月16日(木) 11時59分
TS
●DOS/Windowsのバージョン↓
Windows2003

TSと申します。
どなたかご存知でしたら教えてください(悩んでいます)。

バッチファイルの中で同じ名前のbatファイルを起動するのです
が、起動したbatファイルに対してプロセスIDを獲得する方法は
あるのでしょうか?
UNIXのSHELLでいうところの「$?」相当です。

目的は定期的に起動したbatファイルの状態を見るためです。
※tasklistでは同じbatファイルに見えるので、表示してもど
ちらのプロセスIDなのか区別がつきませんでした。

例としては以下のような感じです。

START A.bat  →ここでプロセスIDを獲得したい
START A.bat  →ここでプロセスIDを獲得したい
563.
Re:BATファイル毎にプロセスIDを獲得したい
2005年06月16日(木) 14時31分
otn
>●DOS/Windowsのバージョン↓
>Windows2003
>
>TSと申します。
>どなたかご存知でしたら教えてください(悩んでいます)。
>
>バッチファイルの中で同じ名前のbatファイルを起動するのです
>が、起動したbatファイルに対してプロセスIDを獲得する方法は
>あるのでしょうか?
>UNIXのSHELLでいうところの「$?」相当です。
>
>目的は定期的に起動したbatファイルの状態を見るためです。
>※tasklistでは同じbatファイルに見えるので、表示してもど
>ちらのプロセスIDなのか区別がつきませんでした。
>
>例としては以下のような感じです。
>
>START A.bat  →ここでプロセスIDを獲得したい
>START A.bat  →ここでプロセスIDを獲得したい

WSH Lab. のサイトで検索してみると使えそうなのがありました。
start で起動するのでなく、バッチを以下のVBSで起動します。

Set Process = GetObject("winmgmts:{impersonationLevel=impersonate}!Win32_Process")
Process.Create "\path\a.bat",Null,Null,pid
WScript.Echo pid

a.bat を動かしている CMD.EXE のプロセスIDが得られます。

他に思いついた方法としては、CMD.EXE を CMD1.EXE CMD2.EXE などと名前を変えてコピーし、
start cmd1 /c a.bat
start cmd2 /c a.bat
とすると、プログラム名で区別出来ます。目的によってはこちらの方が良いかも。
564.
Re:BATファイル毎にプロセスIDを獲得したい
2005年06月16日(木) 15時53分
じゃく
>●DOS/Windowsのバージョン↓
>Windows2003

>※tasklistでは同じbatファイルに見えるので、表示してもど
>ちらのプロセスIDなのか区別がつきませんでした。
>
>例としては以下のような感じです。
>
>START A.bat  →ここでプロセスIDを獲得したい
>START A.bat  →ここでプロセスIDを獲得したい

例にあるように a.bat が引数を取らないバッチなら

start A.bat ID1
start A.bat ID2
とダミーの引数を指定して
tasklist /v で詳細表示すると区別できるかと思います。
(Windows XP の tasklist での確認ですので Windows Server 2003 で違ってたらあしからず)
567.
Re:BATファイル毎にプロセスIDを獲得したい
2005年06月16日(木) 17時43分
TS
繰り返し呼ばれるのでVBSを使おうと思います。
otn様、じゃく様素早い返事ありがごうございましたm(_ _)m
1日半の悩みが解けました(涙)。

>>●DOS/Windowsのバージョン↓
>>Windows2003
>>
>>TSと申します。
>>どなたかご存知でしたら教えてください(悩んでいます)。
>>
>>バッチファイルの中で同じ名前のbatファイルを起動するのです
>>が、起動したbatファイルに対してプロセスIDを獲得する方法は
>>あるのでしょうか?
>>UNIXのSHELLでいうところの「$?」相当です。
>>
>>目的は定期的に起動したbatファイルの状態を見るためです。
>>※tasklistでは同じbatファイルに見えるので、表示してもど
>>ちらのプロセスIDなのか区別がつきませんでした。
>>
>>例としては以下のような感じです。
>>
>>START A.bat  →ここでプロセスIDを獲得したい
>>START A.bat  →ここでプロセスIDを獲得したい
>
>WSH Lab. のサイトで検索してみると使えそうなのがありました。
>start で起動するのでなく、バッチを以下のVBSで起動します。
>
>Set Process = GetObject("winmgmts:{impersonationLevel=impersonate}!Win32_Process")
>Process.Create "\path\a.bat",Null,Null,pid
>WScript.Echo pid
>
>a.bat を動かしている CMD.EXE のプロセスIDが得られます。
>
>他に思いついた方法としては、CMD.EXE を CMD1.EXE CMD2.EXE などと名前を変えてコピーし、
>start cmd1 /c a.bat
>start cmd2 /c a.bat
>とすると、プログラム名で区別出来ます。目的によってはこちらの方が良いかも。

562.BATファイル毎にプロセスIDを獲得したい TS 05/06/16(木) 11:59
563.Re:BATファイル毎にプロセスIDを獲得したい otn 05/06/16(木) 14:31
567.Re:BATファイル毎にプロセスIDを獲得したい TS 05/06/16(木) 17:43
564.Re:BATファイル毎にプロセスIDを獲得したい じゃく 05/06/16(木) 15:53
 
 


カテゴリー「TASKKILL,START…サービス/タスクの起動/終了」索引へ
カテゴリー「UNIXコマンドとDOS/Windows」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2005年06月16日 18:08に投稿されたエントリーのページです。

ひとつ前の投稿は「MS-DOSで下位メモリを少しでも空けたい」です。

次の投稿は「ファイル名の一括変更操作がうまくいかない」です。

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

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