标题: [系统相关] [已解决]xp/win7系统下,各种不同情况,获取桌面路径。通用性比较强的bat命令是? [打印本页]
作者: ygqiang 时间: 2015-1-31 22:48 标题: [已解决]xp/win7系统下,各种不同情况,获取桌面路径。通用性比较强的bat命令是?
本帖最后由 ygqiang 于 2015-2-1 00:22 编辑
[已解决]xp/win7系统下,各种不同情况,获取桌面路径。通用性比较强的bat命令是?- @echo off
- for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do set "desktop_dir=%%j"
- echo %desktop_dir%
- pause
-
- for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do set "dktop2=%%b"
- echo %Desktop2%
- pause
复制代码
这2个命令,有3个不同的地方。都有啥差别?
xp/win7系统、各种不同环境/不同情况下,获取桌面路径通用性比较强的命令,应该如何写?
————————————————————————————————————
更新下:win7 64系统下, 刚测试了下。。只有下面这个代码好用。- @echo off
- for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do set "desktop_dir=%%j"
- echo %desktop_dir%
- copy "%desktop_dir%\*.*" c:\000
- pause
复制代码
作者: zhangzsky 时间: 2015-1-31 23:27
注册表读取shell的为止不一样。其他相同
作者: pcl_test 时间: 2015-1-31 23:29
回复 1# ygqiang
都一样哟,在注册表中这两个项是要一致的,所以取哪个项的值一样
作者: ygqiang 时间: 2015-1-31 23:37
回复 ygqiang
都一样哟,在注册表中这两个项是要一致的,所以取哪个项的值一样
pcl_test 发表于 2015-1-31 23:29
注册表读取shell的为止不一样。其他相同
zhangzsky 发表于 2015-1-31 23:27
2* 和 2,*
有啥差别?
有人说:“有人的桌面路径是在别的盘符的”。
作者: pcl_test 时间: 2015-2-1 00:18
回复 4# ygqiang
以获取注册表中的值来取得桌面的路径就是为了保证就算改了桌面路径也可正确获取到更改后的桌面路径
至于2* 和 2,*,都是表示取第2列其后的列给第二个变量,在这里表示方法可以有多种
tokens=有时表示提取全部
tokens=m表示提取第m列
tokens=m,n表示提取第m列和第n列
tokens=m-n表示提取第m列至第n列
tokens=*表示删除每行前面的空格,忽略行首的所有空格
tokens=m*提取第m列以后的所有字符,星号表示剩余的字符
tokens=m,*提取第m列以后的所有字符,星号表示剩余的字符
输出变量的个数由定义了的tokens决定
作者: ygqiang 时间: 2015-2-1 00:21
回复 ygqiang
以获取注册表中的值来取得桌面的路径就是为了保证就算改了桌面路径也可正确获取到更改后 ...
pcl_test 发表于 2015-2-1 00:18
win7 64系统下, 刚测试了下。。只有这个代码好用。
@echo off
for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do set "desktop_dir=%%j"
echo %desktop_dir%
copy "%desktop_dir%\*.*" c:\000
pause
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |