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

[文件操作] 批处理怎样获取正在运行的程序的路径并打开某个文件夹?

目的:主要是方便一款csgo游戏的设置,其设置文件有两个存放位置,后缀是.cfg,现在想要自动根据正在运行的steam.exe找到对应的两个文件夹并打开,将这两个文件夹发送到桌面快捷方式,.cfg文件关联记事本
伪代码(大概给出流程,bat并不了解。。):
1.bat
找到正在运行Steam.exe的路径(...\Steam\Steam.exe)
打开文件夹...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg
打开文件夹...\Steam\userdata
2.bat
找到正在运行Steam.exe的路径(...\Steam\Steam.exe)
在桌面生成下面两个文件夹的快捷方式
...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg
...\Steam\userdata
3.bat
关联 .cfg文件用记事本打开

然后我自己研究了一会 依葫芦画瓢 写了一段
  1. @echo off
  2. for /f "delims=" %%a in ('wmic process where name="qq.exe" get executablepath^ /value^|find "="') do set "%%a"
  3. echo %executablepath%
  4. pause
复制代码
但是运行时显示:
steam.exe - 别名谓词无效。

求高人指点

本帖最后由 WHY 于 2019-2-21 09:54 编辑

test.bat 右键以管理员身份运行
  1. @echo off
  2. for /f "delims=" %%i in ('wmic Process where "Name='Steam.exe'" get ExecutablePath^|find ":"') do (
  3.     set "fd1=%%~dpiSteamapps\common\Counter-Strike Global Offensive\csgo\cfg"
  4.     set "fd2=%%~dpiUserdata"
  5. )
  6. start "" "%fd1%"
  7. start "" "%fd2%"
  8. mshta "javaScript:objShell=new ActiveXObject('WScript.Shell');objLink=objShell.CreateShortcut(objShell.SpecialFolders('desktop')+'\\CFG.LNK');objLink.TargetPath='%fd1:\=\\%';objLink.Save();close()"
  9. mshta "javaScript:objShell=new ActiveXObject('WScript.Shell');objLink=objShell.CreateShortcut(objShell.SpecialFolders('desktop')+'\\Userdata.LNK');objLink.TargetPath='%fd2:\=\\%';objLink.Save();close()"
  10. reg add HKCR\.cfg /ve /d "txtfile" /f
  11. reg add HKCR\txtfile\shell\open\command /ve /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\notepad.exe %%1" /f
  12. pause
复制代码

TOP

返回列表