中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 设置Outlook Express路径问题 上一主题 | 下一主题
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『楼 主』:  设置Outlook Express路径问题

做光盘,为了保存用户的邮件资料,打算将Outlook Express和通讯录转移到D盘,使用代码是
reg add "HKEY_CURRENT_USER\Identities\{F4E98C86-4D9A-463F-920C-1DF555C3B434}\Software\Microsoft\Outlook Express\5.0" /v "Store Root" /t REG_EXPAND_SZ /d "D:\\Personal\\Outlook Express" /f
大家有没有使用过这样的代码,其实这样有很大的局限性,{F4E98C86-4D9A-463F-920C-1DF555C3B434}对每个系统都是不一样,怎么样根据系统代码来读取这个数值
还有就是批处理解决通讯录问题

2006-11-20 03:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


  查找这个需要对系统注册表的CLSID非常熟悉,不过还是可以百度出来的. =_=   
  不知道这个通讯录是以什么形式保存的。?


2006-11-20 04:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 3 楼』:  

我觉得应该是将CLSID读取出来做变量才现实,这样就很好写注册表

2006-11-20 04:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

我提供我的批处理的一个片断,仅供参考:
...

:: 定义Outlook Express文件存放位置
set outlook="D:\My Documents\My Mails\Outlook Express"

:: 修改Outlook Express的默认保存位置
set userid=
tfind > nul
reg query "HKCU\Identities" /v "Default User ID" | tfind "Default User ID" | lmod set USERID=[$5] > temp.bat
call temp.bat
del temp.bat
if "%userid%"=="" goto _quit
reg add "HKCU\Identities\%USERID%\Software\Microsoft\Outlook Express\5.0" /v "Store Root" /d %outlook% /f

:_quit
...
这个批处理写得很早了,现在完全可以使用find或者for来代替tfind和lmod这些第三方软件。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-11-20 07:35
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 5 楼』:  

这个代码比较复杂,用第三方软件是比较麻烦,Climbing能不能给个不用第三方软件的代码

2006-11-20 08:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

将上面批处理中下面几行:
tfind > nul
reg query "HKCU\Identities" /v "Default User ID" | tfind "Default User ID" | lmod set USERID=[$5] > temp.bat
call temp.bat
del temp.bat
替换为:
for /f "usebackq tokens=4,*" %%i in (`reg query "HKCU\Identities" /v "Default User ID" ^| find /i "Default User ID"`) do set UserID=%%j
这样就没有任何第三方软件了。

   此帖被 +4 点积分        点击查看详情   
评分人:【 ronin 分数: +4  时间:2006-11-20 23:29




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-11-20 10:14
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 7 楼』:  

谢谢Climbing,代码如下,包括通讯簿备份

:: 修改Outlook Express的默认保存位置
set userid=
for /f "usebackq tokens=4,*" %%i in (`reg query "HKCU\Identities" /v "Default User ID" ^|

find /i "Default User ID"`) do set UserID=%%j
if "%userid%"=="" goto _quit
reg add "HKCU\Identities\%USERID%\Software\Microsoft\Outlook Express\5.0" /v "Store Root" /d

"D:\个人重要资料\Outlook Express" /f

:: 修改Outlook Express通讯簿的默认保存位置
reg add "HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4\Wab File Name" /v "" /t REG_SZ /d "D:\个人重要资料\Outlook Express\Address Book\Administrator.wab" /f >nul 2>nul

:: 转移Outlook Express的通讯簿
xcopy %USERPROFILE%\Application Data\Microsoft\Address Book\*.wab "D:\个人重要资料\Outlook Express\Address Book" /e /y >nul 2>nul

[ Last edited by ronin on 2006-11-20 at 11:29 PM ]

2006-11-20 22:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: