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

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

[复制链接]
发表于 2023-5-15 18:29:14 | 显示全部楼层 |阅读模式
本帖最后由 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的文件夹。
发表于 2023-5-15 22:46:40 | 显示全部楼层
回复 1# jack2023


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

试试哪一种在你电脑上能成功?
 楼主| 发表于 2023-5-16 09:39:21 | 显示全部楼层
回复 2# Batcher 我的意思并不是要获取QQ的安装目录,qq只是举个例子,换成其他软件也能通用,重要的是后面要对这个安装目录获取的目录进行其他复制、剪切等其他操作。
发表于 2023-5-16 12:05:14 | 显示全部楼层
换成其他软件也能通用

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

还是枚举本机所有的安装程序?
 楼主| 发表于 2023-5-16 13:02:21 | 显示全部楼层
回复 4# czjt1234

直接从注册表读取呀,比如软件名称叫autocad2014,或者从桌面读取快捷方式也行?
set "reg=HKEY_LOCAL_MACHINE\SOFTWARE\QQ"
:: 获取QQ安装目录
发表于 2023-5-16 13:22:04 | 显示全部楼层
直接从注册表读取,那怎么知道是 autocad2014 而不是 autocad2015 ?
那就是要读取当前电脑所有的安装程序了?

如果是桌面图标的话,直接就可以读取,不需要到注册表去读
图标右击属性就有,可以直接读取
 楼主| 发表于 2023-5-16 13:24:37 | 显示全部楼层
回复 6# czjt1234


    写这个bat  就是方便通用  后面对目录进行bat一键操作    因为在不同电脑软件安装目录不同,直接右键就需要每台电脑都去点,就不是我本意了
发表于 2023-5-16 13:29:16 | 显示全部楼层
不是说去每台电脑右击,是说批处理可以自动完成右击读取的工作

可以读取QQ也可以读取autocad2014

我的意思是,你告诉我的这个QQ和autocad2014你是怎么知道的,哪来的?
 楼主| 发表于 2023-5-16 14:10:02 | 显示全部楼层
回复 8# czjt1234


    这个是我要操作的软件   就是要写个bat  来读取我指定的软件,比如我今天想把这个代码用在cad2014,明天用在QQ上,我网上搜索一楼的代码的可以用获取读注册表,也可以读取快捷方式呀  ,但是我整合的用不了
 楼主| 发表于 2023-5-16 14:11:08 | 显示全部楼层
回复 9# jack2023


    读完这个软件的目录,在对这个目录进行其他复制,删除的操作。
发表于 2023-5-16 15:02:25 | 显示全部楼层
以QQ为例
其注册表根据版本不同是会变的
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\QQ
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ
可能是 HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ2016
或者是其它

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

所以还是推荐从桌面图标读取,比如把图标拖到批处理上
 楼主| 发表于 2023-5-16 15:05:15 | 显示全部楼层
回复 11# czjt1234


    可以从桌面快捷方式,大佬能否帮我写个bat,读出快捷方式的根目录,并对在这个根目录下面新建1个123的文件夹。谢谢!
发表于 2023-5-16 15:28:13 | 显示全部楼层
"D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
哪个是根目录?
Tencent
Tencent\QQ
Tencent\QQ\Bin
 楼主| 发表于 2023-5-16 16:22:57 | 显示全部楼层
本帖最后由 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的文件夹。
 楼主| 发表于 2023-5-16 17:29:48 | 显示全部楼层
回复 13# czjt1234

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

本版积分规则

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

GMT+8, 2026-3-18 21:12 , Processed in 0.020958 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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