[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 【已解决】批处理对多个同名不同版本的exe进程根据版本号有选择性的强制关闭

本帖最后由 solan 于 2017-4-1 12:14 编辑

如题
批处理准对多个同名不同版本的exe进程根据版本号有选择性的强制关闭,比如abc.exe进程有多个不同版本同时运行,我想把大于2.1.0.0的所有同名进程强制关闭,
我搜索了本论坛的帖子,自己也没办法解决,只好求助老师,拜托拜托啦
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

请老师们帮帮忙,这样的批处理怎么写啊

TOP

  1. wmic process where "name='QQ.exe'" get * /value
复制代码
先看看这个命令的结果里面有没有你需要的版本号

TOP

回复 3# ShowCode


    没有哦

TOP

回复 4# solan


    请举例说明一下你的版本是在哪里看到的

TOP

我在你的代码里面加个pause
在黑框里面没看到我的qq的版本号

TOP

版本号在文件属性里面看到

TOP

本帖最后由 Nsqs 于 2017-3-27 13:45 编辑
  1. @PowerShell -Command "ForEach ($1 in (Get-Process -Name "qq").Path){[System.Diagnostics.FileVersionInfo]::GetVersionInfo($1).FileVersion};[Console]::Readkey()"
复制代码

TOP

通过进程获取exe实际路径,通过实际exe的属性获取版本
wmic process
wmic datafile
taskkill

TOP

回复 9# pcl_test


    一语惊醒啊,我试试

TOP

不行啊,我写不出来
  1. @echo off
  2. set w=wmic process where "name='lmgrd.exe'" get executablepath
  3. for /f "tokens=*" %%a in ('%w% 2^>nul ^| find "\"') do set "ph=%%~dpa"
  4. wmic "%ph%lmgrd.exe"
  5. pause
复制代码

TOP

请版主老大帮忙啊

TOP

回复 12# solan
  1. @PowerShell -Command "$p=(Get-Process -Name "qq");ForEach ($i in $p){$i.path+' 的版本号是 '+[System.Diagnostics.FileVersionInfo]::GetVersionInfo($i.path).FileVersion;Stop-Process -id $i.id -Confirm};[Console]::Readkey()"
复制代码
会提示结束进程

TOP

回复 13# Nsqs


    谢谢,我试试

TOP

回复 13# Nsqs

C:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe 的版本号是 8.3.18038.0

确认
是否确实要执行此操作?
正在目标“QQ (10476)”上执行操作“Stop-Process”。
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“Y”):

TOP

返回列表