无忧启动论坛

标题: 路径变量在批处理中不成功,查复制粘贴在命令行中成功 [打印本页]

作者: zts59    时间: 2024-10-11 16:23
标题: 路径变量在批处理中不成功,查复制粘贴在命令行中成功
  1. ::
  2. set "mypath="
  3. for /f "tokens=2*" %%a in ('REG QUERY "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v NetHood ^| find "_SZ"') do set "mypath=%%b"
  4. cd /d "%mypath%"
  5. cd
  6. pause
复制代码
  1. HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
  2.     nethood    REG_EXPAND_SZ    %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts
复制代码
  1. D:\test>p1

  2. D:\test>set "mypath="

  3. D:\test>for /F "tokens=2*" %a in ('REG QUERY "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v NetHood | find "_SZ"') do set "mypath=%b"

  4. D:\test>set "mypath=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts"

  5. D:\test>cd /d "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts"
  6. 系统找不到指定的路径。

  7. D:\test>cd
  8. D:\test

  9. D:\test>pause
  10. 请按任意键继续. . .
复制代码
第一处代码是批处理,得到注册表中的值,第二处代码是注册表值
第三处代码是执行批处理后的结果,cd /d "%mypath%"  不成功,但复制在命令行中手动执行成功
另个把 cd /d "%mypath%"改成:md "%mypath%" 在当前文件夹建立了一个有百分号的文件夹%USERPROFILE%



作者: wn168cn@163.com    时间: 2024-10-11 16:31
感谢分享
作者: 倒垃圾的歌者    时间: 2024-10-11 16:56
本帖最后由 倒垃圾的歌者 于 2024-10-11 16:58 编辑

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts等同于%AppData%\Microsoft\Windows\Network Shortcuts
作者: 527104427    时间: 2024-10-11 17:55
把 do set 改成 do call set 即可
作者: zts59    时间: 2024-10-11 19:18
527104427 发表于 2024-10-11 17:55
把 do set 改成 do call set 即可

牛哦,这个是什么原理
作者: 527104427    时间: 2024-10-11 19:25
zts59 发表于 2024-10-11 19:18
牛哦,这个是什么原理

https://www.jb51.net/article/193245.htm
作者: zts59    时间: 2024-10-11 19:33
527104427 发表于 2024-10-11 19:25
https://www.jb51.net/article/193245.htm

谢谢,原来是变量延迟在作怪
作者: BEIKING    时间: 2024-10-11 20:39
527104427 发表于 2024-10-11 17:55
把 do set 改成 do call set 即可

5大牛B,学习下




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