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

[其他] 求bat脚本可以获取某软件安装根目录

本帖最后由 jack2023 于 2023-5-16 17:46 编辑

求高手写一个bat  要求获取改成通用的软件的根目录,并在后面对这个目录进行相关复制、剪切等操作,如何引用这个获取的目录?
例如:
可以获取某软件(比如QQ)的安装根目录,并在其根目录下面新建1个文件夹123。自己网上整合了1个,发现无法识别目录,求高手指教修改一下哈。
  1. @echo off&cd /d "%~dp0"
  2. :: 获取xxx安装目录
  3. set "reg=HKEY_LOCAL_MACHINE\SOFTWARE\QQ"
  4. :: 获取QQ安装目录
  5. for /f "skip=2 tokens=3,*" %%i in ('reg query %reg% /s') do (
  6.     set destPath=%%i %%j
  7.     :: 验证是否是目录
  8.     echo %%i | findstr : >nul && (
  9.         goto back
  10.     )
  11. )
  12. :back
  13. echo %destPath%
  14. md "%destPath%\123\"
  15. pause
  16. exit
复制代码
比如,从桌面QQ快捷方式获取的文件位置为
    "D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
则根目录为   D:\Program Files (x86)\Tencent\QQ\Bin\
然后写代码在这个根目录下面新建1个文件名为123的文件夹。

回复 1# jack2023


自动获取QQ路径的几种方法:读注册表、全盘搜索、获取进程信息等
http://bbs.bathome.net/thread-4193-1-1.html

试试哪一种在你电脑上能成功?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher 我的意思并不是要获取QQ的安装目录,qq只是举个例子,换成其他软件也能通用,重要的是后面要对这个安装目录获取的目录进行其他复制、剪切等其他操作。

TOP

换成其他软件也能通用

那么,你这个其它软件的名称是从何而来?
桌面上的图标?

还是枚举本机所有的安装程序?

QQ 20147578

TOP

回复 4# czjt1234

直接从注册表读取呀,比如软件名称叫autocad2014,或者从桌面读取快捷方式也行?
set "reg=HKEY_LOCAL_MACHINE\SOFTWARE\QQ"
:: 获取QQ安装目录

TOP

直接从注册表读取,那怎么知道是 autocad2014 而不是 autocad2015 ?
那就是要读取当前电脑所有的安装程序了?

如果是桌面图标的话,直接就可以读取,不需要到注册表去读
图标右击属性就有,可以直接读取

QQ 20147578

TOP

回复 6# czjt1234


    写这个bat  就是方便通用  后面对目录进行bat一键操作    因为在不同电脑软件安装目录不同,直接右键就需要每台电脑都去点,就不是我本意了

TOP

不是说去每台电脑右击,是说批处理可以自动完成右击读取的工作

可以读取QQ也可以读取autocad2014

我的意思是,你告诉我的这个QQ和autocad2014你是怎么知道的,哪来的?

QQ 20147578

TOP

回复 8# czjt1234


    这个是我要操作的软件   就是要写个bat  来读取我指定的软件,比如我今天想把这个代码用在cad2014,明天用在QQ上,我网上搜索一楼的代码的可以用获取读注册表,也可以读取快捷方式呀  ,但是我整合的用不了

TOP

回复 9# jack2023


    读完这个软件的目录,在对这个目录进行其他复制,删除的操作。

TOP

以QQ为例
其注册表根据版本不同是会变的
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\QQ
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ2016
或者是其它

因此通过注册表来读取是不妥的
即使是在添加删除程序里面,名称也会变

所以还是推荐从桌面图标读取,比如把图标拖到批处理上

QQ 20147578

TOP

回复 11# czjt1234


    可以从桌面快捷方式,大佬能否帮我写个bat,读出快捷方式的根目录,并对在这个根目录下面新建1个123的文件夹。谢谢!

TOP

"D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
哪个是根目录?
Tencent
Tencent\QQ
Tencent\QQ\Bin

QQ 20147578

TOP

本帖最后由 jack2023 于 2023-5-16 17:30 编辑

回复 13# czjt1234

比如,从桌面QQ快捷方式获取的文件位置为
    "D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
则根目录为   D:\Program Files (x86)\Tencent\QQ\Bin\
然后写代码在这个根目录下面新建1个文件名为123的文件夹。

TOP

回复 13# czjt1234

比如,从桌面QQ快捷方式获取的文件位置为
    "D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
则根目录为   D:\Program Files (x86)\Tencent\QQ\Bin\
然后写代码在这个根目录下面新建1个文件名为123的文件夹。

TOP

返回列表