无忧启动论坛

标题: 批处理如何读取注册表值得到桌面路径并引用 [打印本页]

作者: whyme22    时间: 2020-6-18 12:05
标题: 批处理如何读取注册表值得到桌面路径并引用
本帖最后由 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 (这里不知道怎么引用)
作者: 窄口牛    时间: 2020-6-18 16:26
  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"
复制代码

没太看明白你的意思,大概照着走吧
作者: whyme22    时间: 2020-6-18 17:58
窄口牛 发表于 2020-6-18 16:26
没太看明白你的意思,大概照着走吧

谢谢赐教! 我是想用批处理在桌面建立快捷方式 因为有些电脑的桌面路径修改过的
直接用 “%USERPROFILE%\桌面” 这个相对路径的话,遇到桌面路径不是默认位置的电脑就看不到桌面有快捷方式生成,网上又找不到桌面的相对路径,找了半天才找到 通过读取注册表项得到桌面路径的方法。但是又没有相关知识,不知道得到路径后该怎么引用 达到在任何电脑桌面生成可用的快捷方式的目的
多谢解答
作者: 窄口牛    时间: 2020-6-18 19:48
快捷方式用vbs搞,不需要知道桌面具体实际路径。
作者: 一本小书    时间: 2020-6-18 21:56
我是这样创建的;不知你能否照样子改;
@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


作者: whyme22    时间: 2020-6-19 09:51
窄口牛 发表于 2020-6-18 19:48
快捷方式用vbs搞,不需要知道桌面具体实际路径。

谢谢,只会复制命令改一改 会的命令一只手数的过来 vbs就更不明白了
您之前给的命令行已经可以解决问题了 虽然不太懂其中的运行原理 看来要折腾还是要学一下基础知识的
作者: whyme22    时间: 2020-6-19 09:56
一本小书 发表于 2020-6-18 21:56
我是这样创建的;不知你能否照样子改;
@echo off

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




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3