startコマンドは、次のようなバッチファイルでメモ帳などのアプリケーションを起動できます。
start notepad
start "my love.mp3"
しかし、コマンドラインから実行中のアプリケーションを閉じるにはどうすればよいですか?検索で見つけましtaskkill
たが、機能していないため、これが正しいコマンドではないと思います。そのようなファイルはないと表示されます。
で起動したアプリケーションを閉じるにはどうすればよいstart
ですか?
startコマンドは、次のようなバッチファイルでメモ帳などのアプリケーションを起動できます。
start notepad
start "my love.mp3"
しかし、コマンドラインから実行中のアプリケーションを閉じるにはどうすればよいですか?検索で見つけましtaskkill
たが、機能していないため、これが正しいコマンドではないと思います。そのようなファイルはないと表示されます。
で起動したアプリケーションを閉じるにはどうすればよいstart
ですか?
taskkill /?
構文といくつかの例を入力します。あなたがしたいことは/IM
あなたが殺したいプログラムの名前を使って引数を渡すことです。例えば:
TASKKILL /F /IM notepad.exe
notepad.exeを強制終了します。
TASKKILL /F /IM note*
「note」で始まるすべてのプロセスを強制終了します。
Taskkillは正しいです。ただし、ファイル自体ではなく、ファイルを再生しているプロセスを強制終了する必要があります。コマンドプロンプトからmp3ファイルの登録済みハンドラーを把握するのは少し注意が必要です。
あなたがそれを知っているなら、あなたはそのプロセスを殺すことができます。
これは、mp3ファイルの登録済みアプリケーションを把握し、タスクを強制終了するスクリプトです。
@echo off
if not .%1==. goto show
:createtemp
set tempfile="%temp%\temp-%random%-%time:~6,5%.bat"
if exist %tempfile% goto :createtemp
reg query HKEY_CLASSES_ROOT\mp3file\shell\play\command\ > %tempfile%
for /F "skip=4 delims=> tokens=2 usebackq" %%e in (`type %tempfile%`) do call %0 %%e
del %tempfile% > nul
set tempfile=
set handler=
set teststring=
set offset=
set cmd=
goto end
:show
set handler=%2
set handler=%handler:~1,-1%
set /A offset=-1
:loop
set cmd=set teststring=%%handler:~%offset%%%
echo %cmd% > %tempfile%
call %tempfile%
if %teststring:~0,1%==\ goto complete
set /A offset=offset-1
goto loop
:complete
set /A offset=offset+1
set cmd=set handler=%%handler:~%offset%%%
echo %cmd% > %tempfile%
call %tempfile%
taskkill /IM %handler% > nul
:end
これをkillmp3.bat
何かとして保存すると、いつでも呼び出すことができます。もちろん、プログラムがすでに実行されていて、何か他のことをしている場合は、とにかく閉じられることに注意してください。
これは、実行可能パスを二重引用符で囲むレジストリのエントリに大きく依存することに注意してください。それがなく、実行可能ファイル名にスペースがある場合、失敗します。
私の手法を一般化して、ファイル拡張子を渡すことができるようにすることができます(たとえば.mp3
、レジストリでクラス名mp3file
を検索し、そこからハンドラーを見つけることができます。
開始したファイルの名前を取得し、そこから拡張子を把握するより一般的なソリューションは、理論的には可能ですが、はるかに困難です。あなたの場合、notepad
すべての実行可能ファイルなどのパスを検索することによって、それが何であるかを理解する必要があります。
開始できる非常に短いmp3ファイルを作成した場合、これはより簡単かもしれません。プログラムによっては、現在のファイルの再生を停止して新しいファイルに切り替える場合があります。これにより、ほぼ瞬時に終了し、効果的に再生が停止します。