找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25687|回复: 6

[文件操作] 【已解决】怎样使用bat动态获取目录下[进程名v*.exe]后缀?

[复制链接]
发表于 2017-12-18 14:50:05 | 显示全部楼层 |阅读模式
本帖最后由 867258173 于 2017-12-18 20:11 编辑

比如我写了个程序,名为
a.exe
为了能够方便关闭,再写个bat关闭进程
  1. taskkill /f /im a.exe
复制代码
为了分辨每次更新程序版本,我会每次加个后缀
a v1.0.exe

但每次更改后缀,都要去bat再去更改

  1. taskkill /f /im a v1.0.exe
  2. taskkill /f /im a v1.1.exe
  3. taskkill /f /im a v1.2.exe
  4. taskkill /f /im a v....exe
复制代码
请问怎样才能更改进程名后,也能自动获取进程名v...到.exe之间的字段?
这样每次改了进程名都不用再改bat里的进程名,会更方便些

PS:不是通过使用set /P CHS= 手动输入的,而是自动获取的
发表于 2017-12-18 15:16:50 | 显示全部楼层
  1. taskkill /f /im "a v*"
复制代码

评分

参与人数 1技术 +1 收起 理由
867258173 + 1 实现了需求

查看全部评分

 楼主| 发表于 2017-12-18 16:10:39 | 显示全部楼层
本帖最后由 867258173 于 2017-12-18 16:12 编辑

回复 2# ivor


谢谢回复,刚随便找个应用程序改名测了下
把FSCapture.exe改成 FSCapture v1.exe
任务管理器显示的是这个改了的名称
然后运行
  1. taskkill /f /im "FSCapture v*"
复制代码
已经是管理员运行,但没有关闭进程,说明并没有识别出进程名
发表于 2017-12-18 18:26:26 | 显示全部楼层
本帖最后由 ivor 于 2017-12-18 18:27 编辑

回复 3# 867258173

我猜你v之前的空格打多了,要不就是字母打错了

   
 楼主| 发表于 2017-12-18 19:30:54 | 显示全部楼层
本帖最后由 867258173 于 2017-12-18 19:38 编辑

回复 4# ivor


    虽然不是这个,但居然犯了另一个低级错误,,忘了编辑器都改成UTF-8格式了,包括txt,在cmd试了下才发现原因,OTL
    总之关闭进程实现了
   
    顺便请教下,如果要启动exe的话
  1. start "" "FSCapture v*"
复制代码
这样会报系统找不到文件,请问这个该怎么处理呢?
发表于 2017-12-18 19:45:55 | 显示全部楼层
回复 5# 867258173
  1. @for /f "delims=" %%a in ('dir /b "FSCapture v*"') do (start "" "%%a")
复制代码

评分

参与人数 1技术 +1 收起 理由
867258173 + 1 实现了需求

查看全部评分

 楼主| 发表于 2017-12-18 20:09:51 | 显示全部楼层
回复 6# ivor


_(:з」∠)_实现了,谢谢
  1. @echo off
  2. rem echo start /min open a small window
  3. :logmenu
  4. title ★启动和关闭有版本后缀exe★ 2017-12-18
  5. color 1A
  6. rem elect menu
  7. echo ----------------------------------------------------------------------
  8. echo                    ★启动和关闭有版本后缀exe★
  9. echo.
  10. echo        echo [1] 启动exe                            [2] 关闭exe
  11. echo        echo [esc] 关闭
  12. echo ----------------------------------------------------------------------
  13. set /p chs= 请选择(Choose Please):
  14. echo.
  15. if /i "%chs%"=="1" (
  16.         goto 启动exe
  17. )
  18. if /i "%chs%"=="2" (
  19.         goto 关闭exe
  20. )
  21. if /i "%chs%"=="3" (
  22.         goto null
  23. )
  24. if /i "%chs%"=="4" (
  25.         goto null
  26. )
  27. goto esc
  28. goto 日志菜单(logmenu)
  29. rem ===============================================
  30. :启动exe
  31. rem 启动exe
  32. echo %chs%
  33.         :: this这里更改exe版本前缀
  34.         @for /f "delims=" %%a in ('dir /b "this v*"') do (start "" "%%a")
  35. pause
  36. cls
  37. goto 日志菜单(logmenu)
  38. rem ===============================================
  39. :关闭exe
  40. rem 关闭exe
  41.         :: this这里更改exe版本前缀
  42.         taskkill /f /im "this v*"
  43. pause
  44. cls
  45. goto 日志菜单(logmenu)
  46. rem ===============================================
  47. :关闭
  48. rem 关闭
  49. exit
  50. pause
  51. cls
  52. goto 日志菜单(logmenu)
  53. rem ===============================================
  54. :esc
  55. rem 关闭窗口
  56. rem pause
  57. exit
复制代码
这就是我想要实现的功能,其实要是再加个自己输入进程名前缀选项就更好了,不过这个目前已经实现需求了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:26 , Processed in 0.020328 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表