加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

命令行 – 从DOS命令行关闭正在运行的应用程序

发布时间:2020-12-14 04:33:30 所属栏目:Windows 来源:网络整理
导读:start命令可以在批处理文件中启动诸如记事本的应用程序,如下所示: start notepadstart "my love.mp3" 但是如何从命令行关闭正在运行的应用程序?我在我的搜索中找到了taskkill,但是我不认为这是正确的命令,因为它不起作用 – 它表示没有这样的文件. 如何关
start命令可以在批处理文件中启动诸如记事本的应用程序,如下所示:
start notepad
start "my love.mp3"

但是如何从命令行关闭正在运行的应用程序?我在我的搜索中找到了taskkill,但是我不认为这是正确的命令,因为它不起作用 – 它表示没有这样的文件.

如何关闭使用start启动的应用程序?

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_ROOTmp3fileshellplaycommand > %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,然后从那里找到处理程序.

一个更通用的解决方案,它取代您启动的文件的名称,并从中计算出扩展名是理论上可行的,但更困难.在记事本的情况下,您必须找出通过搜索所有可执行文件等路径.

如果您创建了可以启动的极短mp3文件,这可能会更简单.根据程序,可能会停止播放当前文件并切换到新的文件,几乎立即结束,有效地停止播放.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读