中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何从注册表中获取到系统环境变量,并把其中文件保存
作者:
标题: 如何从注册表中获取到系统环境变量,并把其中文件保存 上一主题 | 下一主题
wushi4057216
新手上路





积分 3
发帖 3
注册 2009-2-5
状态 离线
『楼 主』:  如何从注册表中获取到系统环境变量,并把其中文件保存

RT.
我想使用批处理来保存我的文档,桌面,和收藏夹里的内容到D盘
但是很多电脑环境变量有的改变了.不能通过这段命令来保存xcopy /e /q /h /i /c /y "%userprofile%\桌面\*.*" "d:\Backup\桌面"
xcopy /e /q /h /i /c /y "%userprofile%\我的文档\*.*" "d:\Backup\桌面"
xcopy /e /q /h /i /c /y "%userprofile%\Favorites\*.*" "d:\Backup\桌面"
查看了下注册表内的环境变量
这个语句:reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" >1.txt

1.txt内容如下:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    AppData        REG_EXPAND_SZ        %USERPROFILE%\Application Data
    Desktop        REG_EXPAND_SZ        %USERPROFILE%\桌面
    Favorites        REG_EXPAND_SZ        D:\My Documents\Favorites
    NetHood        REG_EXPAND_SZ        %USERPROFILE%\NetHood
    Personal        REG_EXPAND_SZ        D:\My Documents
    PrintHood        REG_EXPAND_SZ        %USERPROFILE%\PrintHood
     Templates        REG_EXPAND_SZ        %USERPROFILE%\Templates
    My Pictures        REG_EXPAND_SZ        D:\My Documents\My Pictures
     My Music        REG_EXPAND_SZ        D:\My Documents\My Music

现在的问题是如何把
Favorites        REG_EXPAND_SZ        D:\My Documents\Favorites
后面的值赋予.使之可以复制其中的内容~~
想请教下论坛高手如何实现这个目标..希望给予些指点~~
                                                                批处理新手留..

2010-8-3 18:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

学习一下如何使用for命令吧



2010-8-4 00:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wys0754
新手上路





积分 4
发帖 4
注册 2010-7-31
状态 离线
『第 3 楼』:  

for /f "skip=4 tokens=3" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v desktop') do (xcopy /e /q /h /i /c /y "%%a\*.*" "d:\Backup\桌面")
for /f "skip=4 tokens=3" %%b in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do (xcopy /e /q /h /i /c /y "%%b\*.*" "d:\Backup\桌面")
for /f "skip=4 tokens=3" %%c in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Favorites') do (xcopy /e /q /h /i /c /y "%%c\*.*" "d:\Backup\桌面")

[ Last edited by wys0754 on 2010-8-4 at 14:34 ]

2010-8-4 14:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wushi4057216
新手上路





积分 3
发帖 3
注册 2009-2-5
状态 离线
『第 4 楼』:  

谢谢楼上的回答...试了你的代码..出错了..::
C:\Documents and Settings\Administrator\桌面\V
"D:\My\*.*" "d:\Backup\桌面" )
找不到文件 - *.*
复制了 0 个文件

注册表键值:
Favorites        REG_EXPAND_SZ        D:\My Documents\Favorites
这个键值MY后面带空格的...我找到一个方法获取了出来.(呵呵.也是咱们论坛的内容.是提取注册表两个内容.合并后写入另一个地址的帖子..)
@echo off
set p=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
for /f "skip=4 tokens=2*" %%a in ('reg query "%p%" /v Desktop') do set "ver=%%b"
for /f "skip=4 tokens=2*" %%c in ('reg query "%p%" /v Favorites') do set "servp=%%d"
for /f "skip=4 tokens=2*" %%e in ('reg query "%p%" /v Personal') do set "servp1=%%f"
echo  %ver%  %servp% %servp1%
pause
xcopy /e /q /h /i /c /y "%ver%\*.*" "d:\Backup\桌面"
xcopy /e /q /h /i /c /y "%servp%\*.*" "d:\Backup\收藏夹"
xcopy /e /q /h /i /c /y "%servp1%\*.*" "d:\Backup\我的文档"

整个文件还需要更加完善了修改..
这段对于修改了环境变量的系统米作用..
明天继续学习下..

[ Last edited by wushi4057216 on 2010-8-4 at 19:32 ]

2010-8-4 19:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wys0754
新手上路





积分 4
发帖 4
注册 2010-7-31
状态 离线
『第 5 楼』:  

呵呵,确实忘了还有空格哪。
for /f "skip=4 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v desktop') do (xcopy /e /q /h /i /c /y "%%b\*.*" "d:\Backup\桌面")
for /f "skip=4 tokens=2*" %%c in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do (xcopy /e /q /h /i /c /y "%%d\*.*" "d:\Backup\桌面")
for /f "skip=4 tokens=2*" %%e in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Favorites') do (xcopy /e /q /h /i /c /y "%%f\*.*" "d:\Backup\桌面")
[ Last edited by wys0754 on 2010-8-5 at 00:30 ]

2010-8-4 23:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: