中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理:通讯录 上一主题 | 下一主题
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 16 楼』:  

这图片有意思,哈哈~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-17 21:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『第 17 楼』:  

好呀。。
功能越来越多。。。
代码越来越简。。。
问题越来越少。。。
呵呵。。。



Butterfly Kiss Blog
计算机DIY联盟论坛
2006-11-17 23:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 18 楼』:  

建议每修改、更新一个通讯录的版本后,在首楼提供一个可以直接下载的文件链接~:)
这样方便大家下载使用 和 方便看到下载计数间接统计对此感兴趣的网友人数~:)
同时,也只有新注册用户才可以下载附件,所以又间接增加了对此感兴趣而必须注册的用户数量~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-18 00:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lits87
新手上路





积分 4
发帖 2
注册 2006-11-18
状态 离线
『第 19 楼』:  

找基础贴看先..
:(

2006-11-18 09:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 20 楼』:  

11-20修改:采用模块方式减少相同功能脚本,增加联系人是否存在判断功能,修改数据库单项结尾、查看全部联系人检索方式
@echo off
title 通讯录
mode con cols=80 lines=25
set DisPlay=
setlocal EnableDelayedExpansion
:Main
cls
echo.
echo   ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
echo   ※                                    ※
echo   ※           ☆欢迎使用命令提示符版通讯录☆           ※
echo   ※                                    ※
echo   ※       zxcv@bbs.cn-dos.net  zh159@bbs.blueshow.net       ※
echo   ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
echo.
echo     ※ 新增(N) ※ 删除(D) ※ 修改(M) ※ 查看全部(A) ※ 查看 Tel.db(V) ※
echo.
set input=
set line=
set /p input=  选择(直接输入联系人或电话查询)%DisPlay%:
if not exist Tel.db call :Tel.db
if "%input%" == "" set DisPlay=&goto Main
if /i "%input%" == "n" goto New
if /i "%input%" == "d" goto Del
if /i "%input%" == "m" goto Modify
if /i "%input%" == "a" goto All
if /i "%input%" == "v" goto db

for /f "tokens=1,2,3* delims=:" %%i in ('findstr /nirc:"%input%" Tel.db') do (
  if "%%j" == "%input%" set line=%%i
  if "%%k" == "%input%" set line=%%i)
if not "%line%" == "" (goto Display) else (
echo   __________________________________________________
echo.
echo   没有找到 %input% 的记录
echo   __________________________________________________
echo.
pause
set DisPlay=
goto Main)

:Display
echo   __________________________________________________
echo.
for /f "skip=%line% delims=" %%i in (Tel.db) do (
    if "%%i" == "-End-" goto End
    echo     %%i
)
:End
echo   __________________________________________________
echo.
pause
set DisPlay=
goto Main

:Tel.db
>Tel.db echo ::电话本数据库
>>Tel.db echo --------------------------------------------------
>>Tel.db echo.
goto :eof

:New
set YN=Y
set check=
echo   (直接回车取消并返回主界面)
call :Input
if "%check%" == "Y" set DisPlay=&echo   联系人 %input% 已存在!&echo.&Pause&goto Main
if "%联系人姓名%" == "" set DisPlay=&goto Main
call :Newdb
set DisPlay=(增加新联系人: %联系人姓名%)
goto Main

:Del
set YN=N
set check=
echo   (直接回车取消并返回主界面)
echo.
set /p 删除联系人=  删除联系人:
if "%删除联系人%" == "" set DisPlay=&goto Main
set input=%删除联系人%
call :Check
if "%check%" == "N" set DisPlay=&echo   联系人 %input% 不存在!&echo.&pause&goto Main
call :Deldb
set DisPlay=(联系人 %删除联系人% 已删除)
goto Main

:Modify
set YN=N
set check=
echo   (直接回车取消并返回主界面)
echo.
set 修改联系人姓名=
set /p 删除联系人=  修改联系人姓名:
set input=%删除联系人%
call :Check
if "%check%" == "N" set DisPlay=&echo   联系人 %input% 不存在!&echo.&pause&goto Main
if "%删除联系人%" == "" set DisPlay=&goto Main
echo   修改为:
call :Input
if "%联系人姓名%" == "" set DisPlay=&goto Main
call :Deldb
call :Newdb
set DisPlay=(联系人 %删除联系人% 已修改)
goto Main

:All
cls
echo.
echo   通讯录所有联系人:
echo.
set N=
for /f "skip=3 delims=" %%i in (Tel.db) do (
    set All=%%i
  if "!All:~-2!" == "::" set /a N+=1&set AllShow=!All:::=!&&echo     !AllShow::= 电话: !
    set /a Page=!N!%%19
  if "!Page!" == "0" if "!All:~-2!" == "::" call :AllPaus)
echo.
pause
goto Main

:db
start notepad Tel.db
goto Main

:Input
echo.
set 联系人姓名=
set 联系人电话=
set 联系人单位=
set 联系人地址=
set /p 联系人姓名=  联系人姓名:
if "%联系人姓名%" == "" goto :eof
set input=%联系人姓名%
call :Check
if "%check%" == "%YN%" goto :eof
set /p 联系人电话=  联系人电话:
set /p 联系人地址=  联系人单位:
set /p 联系人单位=  联系人地址:
goto :eof

:Newdb
>>Tel.db echo %联系人姓名%:%联系人电话%::
>>Tel.db echo 联系人姓名: %联系人姓名%
>>Tel.db echo 联系人电话: %联系人电话%
if not "%联系人单位%" == "" >>Tel.db echo 联系人单位: %联系人单位%
if not "%联系人地址%" == "" >>Tel.db echo 联系人地址: %联系人地址%
>>Tel.db echo -End-
>>Tel.db echo.
goto :eof

:Deldb
move/y Tel.db TelBak.db
call :Tel.db
set Delete=echo
for /f "skip=3 delims=" %%i in (TelBak.db) do (
  for /f "tokens=1* delims=:" %%n in ("%%i") do (
  if "%%n" == "%删除联系人%" set Delete=rem
    >>Tel.db !Delete! %%i
  if "%%i" == "-End-" >>Tel.db !Delete!.&&set Delete=echo
))
goto :eof

:AllPaus
echo.
set Paus=
set /p Paus=  回车继续下一页(B返回主界面)...
if /i "%Paus%" == "b" goto Main
cls
echo.
echo   通讯录所有联系人:
echo.
goto :eof

:Check
for /f "tokens=1,2,3* delims=:" %%i in ('findstr /nirc:"%input%" Tel.db') do (
  if "%%j" == "%input%" set line=%%i
  if "%%k" == "%input%" set line=%%i)
if not "%line%" == "" (goto CheckDisplay) else (
echo.
set check=N
goto :eof)

:CheckDisplay
echo   __________________________________________________
echo.
for /f "skip=%line% delims=" %%i in (Tel.db) do (
    if "%%i" == "-End-" goto CheckEnd
    echo     %%i
)
:CheckEnd
echo   __________________________________________________
echo.
set check=Y
goto :eof


   此帖被 +3 点积分     点击查看详情   
评分人:【 redtek 分数: +3  时间:2006-11-21 23:02


2006-11-21 15:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 21 楼』:  

如果你要做个如何编写这个通讯录的视频教学片,
同时一边讲一边演示、一边讲一边阐述原理,
然后公开发行到各个网站下载区,做为批处理教学片的一部分多好啊~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-21 23:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: