中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-18 05:57
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 设置Outlook Express路径问题 查看 1,559 回复 6
楼 主 设置Outlook Express路径问题 发表于 2006-11-20 03:05 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
UID 9153
性别 男
状态 离线
做光盘,为了保存用户的邮件资料,打算将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}对每个系统都是不一样,怎么样根据系统代码来读取这个数值
还有就是批处理解决通讯录问题
2 发表于 2006-11-20 04:34 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  查找这个需要对系统注册表的CLSID非常熟悉,不过还是可以百度出来的. =_=   
  不知道这个通讯录是以什么形式保存的。?
3 发表于 2006-11-20 04:52 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
UID 9153
性别 男
状态 离线
我觉得应该是将CLSID读取出来做变量才现实,这样就很好写注册表
4 发表于 2006-11-20 07:35 ·  中国 陕西 咸阳 电信
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
我提供我的批处理的一个片断,仅供参考:


...

:: 定义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= > 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这些第三方软件。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
5 发表于 2006-11-20 08:33 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
UID 9153
性别 男
状态 离线
这个代码比较复杂,用第三方软件是比较麻烦,Climbing能不能给个不用第三方软件的代码
6 发表于 2006-11-20 10:14 ·  中国 陕西 咸阳 电信
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
将上面批处理中下面几行:

tfind > nul
reg query "HKCU\Identities" /v "Default User ID" | tfind "Default User ID" | lmod set USERID= > 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


这样就没有任何第三方软件了。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ronin +4 2006-11-20 23:29
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
7 发表于 2006-11-20 22:50 ·  中国 广东 梅州 电信
中级用户
★★
积分 421
发帖 111
注册 2003-08-29 00:00
UID 9153
性别 男
状态 离线
谢谢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 ]
论坛跳转: