无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4028|回复: 6
打印 上一主题 下一主题

[已解决] 批处理如何读取注册表值得到桌面路径并引用

[复制链接]
跳转到指定楼层
1#
发表于 2020-6-18 12:05:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 whyme22 于 2020-6-19 10:02 编辑

因为修改过桌面路径
用 %USERPROFILE%\桌面 这个相对路径就用不上了
所以想读取注册表的值来确定桌面路径
再引用这个路径 创建快捷方式
但是没基础不懂怎么引用,请小哥哥小姐姐们赐教,谢谢!

@echo off
for /f "tokens=2,*" %%i in ('reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop"') do Set a=%%j
MKLINK %a%\1 c:\1txt (这里不知道怎么引用)
2#
发表于 2020-6-18 16:26:17 | 只看该作者
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. reg query HKU\S-1-5-20>nul || echo;CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul
  4. pushd "%CD%"&& CD /D "%~dp0"
  5. for /f "tokens=1,2,3" %%i in ('reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop"^|find "Desktop"') do mklink "%%k\1.txt" "c:\1.txt"
复制代码

没太看明白你的意思,大概照着走吧

点评

谢谢赐教! 我是想用批处理在桌面建立快捷方式 因为有些电脑的桌面路径修改过的 直接用 “%USERPROFILE%\桌面” 这个相对路径的话,遇到桌面路径不是默认位置的电脑就看不到桌面有快捷方式生成,网上又找不到桌面的  详情 回复 发表于 2020-6-18 17:58
回复

使用道具 举报

3#
 楼主| 发表于 2020-6-18 17:58:05 | 只看该作者
窄口牛 发表于 2020-6-18 16:26
没太看明白你的意思,大概照着走吧

谢谢赐教! 我是想用批处理在桌面建立快捷方式 因为有些电脑的桌面路径修改过的
直接用 “%USERPROFILE%\桌面” 这个相对路径的话,遇到桌面路径不是默认位置的电脑就看不到桌面有快捷方式生成,网上又找不到桌面的相对路径,找了半天才找到 通过读取注册表项得到桌面路径的方法。但是又没有相关知识,不知道得到路径后该怎么引用 达到在任何电脑桌面生成可用的快捷方式的目的
多谢解答
回复

使用道具 举报

4#
发表于 2020-6-18 19:48:00 来自手机 | 只看该作者
快捷方式用vbs搞,不需要知道桌面具体实际路径。

点评

谢谢,只会复制命令改一改 会的命令一只手数的过来 vbs就更不明白了 您之前给的命令行已经可以解决问题了 虽然不太懂其中的运行原理 看来要折腾还是要学一下基础知识的  详情 回复 发表于 2020-6-19 09:51
回复

使用道具 举报

5#
发表于 2020-6-18 21:56:00 | 只看该作者
我是这样创建的;不知你能否照样子改;
@echo off

::设置程序或文件的完整路径(必选)
set Program=F:\data F\3-装机必备工具\00-创建桌面快捷方式\迅雷破解xuelei\Program\Thunder.exe
::设置快捷方式名称(必选)
set LnkName=Thunder
::设置程序的工作路径,一般为程序主目录,此项若留空,脚本将自行分析路径
set WorkDir=
::设置快捷方式显示的说明(可选)
set Desc=迅雷
if not defined WorkDir call:GetWorkDir "%Program%"
(echo Set WshShell=CreateObject("WScript.Shell"^)
echo strDesKtop=WshShell.SpecialFolders("DesKtop"^)
echo Set oShellLink=WshShell.CreateShortcut(strDesKtop^&"\%LnkName%.lnk"^)
echo oShellLink.TargetPath="%Program%"
echo oShellLink.WorkingDirectory="%WorkDir%"
echo oShellLink.WindowStyle=1
echo oShellLink.Description="%Desc%"
echo oShellLink.Save)>makelnk.vbs
echo 桌面快捷方式创建成功!
makelnk.vbs
del /f /q makelnk.vbs
exit
goto :eof
:GetWorkDir
set WorkDir=%~dp1
set WorkDir=%WorkDir:~,-1%
goto :eof

pause
exit

点评

谢谢赐教 按注解改了路径 果然好用 虽然不懂其中的原理 后面的命令行看不懂 感谢感谢  详情 回复 发表于 2020-6-19 09:56
回复

使用道具 举报

6#
 楼主| 发表于 2020-6-19 09:51:33 | 只看该作者
窄口牛 发表于 2020-6-18 19:48
快捷方式用vbs搞,不需要知道桌面具体实际路径。

谢谢,只会复制命令改一改 会的命令一只手数的过来 vbs就更不明白了
您之前给的命令行已经可以解决问题了 虽然不太懂其中的运行原理 看来要折腾还是要学一下基础知识的
回复

使用道具 举报

7#
 楼主| 发表于 2020-6-19 09:56:59 | 只看该作者
一本小书 发表于 2020-6-18 21:56
我是这样创建的;不知你能否照样子改;
@echo off

谢谢赐教 按注解改了路径 果然好用 虽然不懂其中的原理 后面的命令行看不懂  感谢感谢  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-5 13:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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