Board logo

标题: [系统相关] 批处理有没有指向“桌面”的环境变量? [打印本页]

作者: strong12345    时间: 2011-4-7 22:24     标题: 批处理有没有指向“桌面”的环境变量?

请问有没有指向"桌面"的环境变数
虽然可以用其他变数合成
但是有鉴于 不同系统,繁体,简体,英文等..
"桌面"一词,不相同,例如在使用big5编写批处理,却在gbk系统执行,"桌面"一词肯定变成乱码
请问有没有避免此情形的方法
或是指向桌面的环境变数
作者: mxxcgzxxx    时间: 2011-4-7 22:35

好像没有哦只能到用户目录吧?而且如果是改装过的系统,桌面还会变的。
不过应该通过查询注册表是可以发现当前用户的桌面所在位置吧。
我查了下,因为我的系统就是改装过的所以好查,是下面这个注册项可以查到桌面的具体位置。
怎么用批处理调出来我就不知道了,你试试
  1. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
  2. "Desktop"="D:\\我的文档\\桌面"
复制代码
成功了把调注册表的命令发上来,对我很有用哈
作者: strong12345    时间: 2011-4-7 23:00

感謝你的建議,提供我的代碼
  1. @echo off
  2. for /f "tokens=3-5" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v desktop^|find ":"') do (set "desktop=%%a %%b %%c")
  3. echo %desktop%
  4. pause
复制代码

作者: andyrave    时间: 2011-4-7 23:14

  1. @echo off & setlocal enableDelayedExpansion
  2. For /f "tokens=2*" %%a IN ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') DO Set "Desktop=%%b"
  3. For /f "delims=*" %%i IN ('Call echo %Desktop%') do set Desktop=%%i
  4. echo %Desktop%
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2