2011-01-13 20 views
7

私はバッチファイルからブラウザを起動しています。Windowsバッチファイル:最後のプロセスのPID?

START "www.google.com" 

私はこのブラウザウィンドウのPIDを知りたいと思います。

1台のマシンに複数のブラウザウィンドウを起動できます。私は私のバッチファイルだけによって起動されたプロセスのPIDを見つける必要があります。私はWINDOWTITLEフィルタを試しました。しかし、そのタイトルは将来的に変わる可能性があります。私はWindows XP/7を使用しています

助けていただければ幸いです。おかげさまで

+0

に応じて変数を変更ブラウザウィンドウ?ドキュメントによると、START "title"はタイトルが指定された新しいコンソールウィンドウを開きます。 –

+0

申し訳ありませんが、開始する必要があります "タイトル" "www.google.com" –

+0

この投稿はスーパーユーザに属していると考える –

答えて

0

これは、タスクリスト

と呼ばれるコマンドがある道

に多分あなたを取得するには、単にアイデアであると、フィルタ/ FIと呼ばれるスイッチがありますが、出力に何をしたいのフィルタパラメータを決定できます、fe PID。出力この> 1.TXT

は、その後、あなたが創造的な取得する必要があります2.TXT

にウォッチリスト、出力を再確認し、あなたのプロセスへ

を開始

。 COmpare 1 to 2、 2.TXTから1のプロセスを削除する可能性があります 残存PIDはあなたが望むものですか?

0

プログラミングの経験がある場合は、独自のコンソールアプリケーションを作成してコマンドラインパラメータを受け取り、Win32 API CreateProcess()関数に渡すことができます。その出力値の1つは生成されたプロセスIDで、これはアプリケーションが返すことができます。次に、STARTを直接使用する代わりに、バッチファイルを更新してアプリを呼び出すだけです。

0

私は同じことをしようとしています。しかし、それを行うためのいくつかの方法が必要ですが、私のすべてのグーグルは示唆していません。

robvanderwoude.comを参照して、サードパーティのツールとサンプルのリストを確認してください。また、Sysinternalのプロセスユーティリティhereの全リストもご覧ください。

0

私は今、約2時間にわたってこれを見てきたと私はこれを行う方法があると思いますが、それは窓がPIDのためiexplore.exeをどのように処理するかについて、いくつかのより多くの洞察力を必要と...

私はあなたが望むものを得ることができるバッチファイルの作業バージョンを持っていますが、が最初と唯一のInternet Explorerウィンドウが開いている場合にのみ、です。私は、新しいブラウザを開いたときにPIDを変更することができませんが、ないウィンドウのオープンがない場合(無PIDがないので、明らかに)私は結果を得ることができますいくつかの理由

とにかく、これは何ですか私は...あなたのシステムでこれを実行できるはずです。違いがなく、あなたのデフォルトのブラウザがFirefoxやChromeなどであれば、実際に結果が得られるかもしれません...変更を加えるだけです私が提供しているものまで

@echo off 
IF EXIST c:\temp\pshell.txt del c:\temp\pshell.txt 
IF EXIST C:\temp\PID1.txt del C:\temp\PID1.txt 
IF EXIST C:\temp\PID2.txt del C:\temp\PID2.txt 
IF EXIST C:\temp\PowerFormat.txt del C:\temp\PowerFormat.txt 
powershell.exe Get-Process iexplore>C:\temp\pshell.txt 
FOR /F "skip=3 tokens=7 delims= " %%1 IN (c:\temp\pshell.txt) DO @echo %%1>> C:\temp\PID1.txt 
start "title" "www.google.com" 
powershell.exe Get-Process iexplore>C:\temp\pshell.txt 
FOR /F "skip=3 tokens=7 delims= " %%2 IN (c:\temp\pshell.txt) DO @echo %%2>> C:\temp\PID2.txt 

FC /L c:\temp\pid1.txt c:\temp\pid2.txt> C:\temp\FileComparison.txt 
FOR /F "tokens=7 delims=" %%3 IN (c:\temp\FileComparison.txt) DO @echo %%3>C:\temp\DiffPID.txt 

FINDSTR "FC: no differences encountered" c:\temp\FileComparison.txt 
IF '%ERRORLEVEL%'=='0' del C:\temp\FileComparison.txt & echo.No PID Found 
IF NOT '%ERRORLEVEL%'=='0' type c:\temp\FileComparison.txt 

pause 
exit 

これが役立つかどうか教えてください。それは価値がある何のため

2

(質問は以上2歳)このコードは、トリックを行う、ちょうどデフォルトのブラウザのexeファイル `オープン` START「www.google.com」をどのように

set "browser=palemoon.exe" 

tasklist /FI "imagename eq %browser%" /NH /FO csv > task-before.txt 
start www.google.com 
tasklist /FI "imagename eq %browser%" /NH /FO csv > task-after.txt 

:: fc /L /LB1 test4-Before.txt test4-After.txt | find /I "%browser%" 
for /f "delims=, tokens=2,*" %%A in ('"fc /L /LB1 task-before.txt task-after.txt | find /I "%browser%""') do set pid=%%A 

SETLOCAL enabledelayedexpansion 
pid=!pid:"=! 
ENDLOCAL 
echo pid is %pid% 
関連する問題