中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 不能输出理想的文本文件,请大家帮忙。【已解决】
作者:
标题: 不能输出理想的文本文件,请大家帮忙。【已解决】 上一主题 | 下一主题
516526966
初级用户




积分 63
发帖 37
注册 2008-8-9
状态 离线
『楼 主』:  不能输出理想的文本文件,请大家帮忙。【已解决】

现有一个批处理文件abc.bat 内容为:
@echo off
cls
echo.
echo.             ╭─────────╮
echo. ╭───┤     选择如下操作   ├───╮
echo. │         ╰─────────╯        │
echo. │                                                  │
echo. │         A. 好运天使                         │
echo. │                                                  │
echo. │         B. 中国CN-DOS                     │
echo. │                                                  │
echo. │         Y.麻烦大家了                       │
echo. │                                                  │
echo. ╰─────────────────╯
echo.
echo. 大家好,欢迎光临中国DOS联盟
echo.
echo. 为什么总是这么笨呢?
echo.
echo.  请求大家啊帮忙。
echo.
pause>nul
exit
我的意愿是在abc.bat批处理文件开头加上一段代码,使得abc.bat中指定的内容输出到a.txt中,得到的a.txt的内容是

  Quote:
            ╭─────────╮
╭───┤     选择如下操作    ├───╮
│         ╰─────────╯        │
│                                                  │
│         A. 好运天使                         │
│                                                  │
│         B. 中国CN-DOS                     │
│                                                  │
│         Y.麻烦大家了                       │
│                                                  │
╰─────────────────╯

请求高手的指点和帮助


谢谢了。

[ Last edited by 516526966 on 2009-5-18 at 02:48 ]



矛盾的世界同样精彩<点击查看>
2009-5-14 13:52
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (286569692)  编辑帖子  回复  引用回复
516526966
初级用户




积分 63
发帖 37
注册 2008-8-9
状态 离线
『第 2 楼』:  

麻烦大虾们给指点一下,谢谢了。。。



矛盾的世界同样精彩<点击查看>
2009-5-15 05:26
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (286569692)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  


@echo off&setlocal enabledelayedexpansion
(
for /f "tokens=1,* delims=." %%a in ('type "%~dpnx0"') do (
    set str=%%b
    if "!str!" equ "         ╭─────────╮" set r=y
    if defined r echo;!str!
    if "!str!" equ " ╰─────────────────╯" set r=
))>a.txt
exit
@echo off
cls
echo.
echo.         ╭─────────╮
echo. ╭───┤   选择如下操作   ├───╮
echo. │      ╰─────────╯      │
echo. │                                  │
echo. │         A. 好运天使              │
echo. │                                  │
echo. │         B. 中国CN-DOS            │
echo. │                                  │
echo. │         Y.麻烦大家了             │
echo. │                                  │
echo. ╰─────────────────╯
echo.
echo. 大家好,欢迎光临中国DOS联盟
echo.
echo. 为什么总是这么笨呢?
echo.
echo.  请求大家啊帮忙。
echo.
pause>nul
exit
[ Last edited by netbenton on 2009-5-15 at 12:03 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 516526966 分数: +2  时间:2009-5-15 13:43




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-5-15 07:03
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
516526966
初级用户




积分 63
发帖 37
注册 2008-8-9
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by netbenton at 2009-5-15 07:03 AM:
@echo off&setlocal enabledelayedexpansion
(
for /f "tokens=1,* delims=." %%a in ('type "%~dpnx0"') do (
    set str=%%b
    if "!str!" equ "         ╭─ ...

非常感谢您的回复,再麻烦大侠一点事情。如果我有如下的脚本:
@echo off
cls
echo.
echo.         ╭─────────╮
echo. ╭───┤   选择如下操作   ├───╮
echo. │      ╰─────────╯      │
echo. │                                  │
echo. │         A. 好运天使              │
echo. │                                  │
echo. │         B. 中国CN-DOS            │
echo. │                                  │
echo. │         Y.麻烦大家了             │
echo. │                                  │
echo. ╰─────────────────╯
echo.
echo.     ╭─────────╮
echo. ╭─┤   选择如下操作   ├─╮
echo. │  ╰─────────╯  │
echo. │                          │
echo. │    A. 好运天使           │
echo. │                          │
echo. │    B. 中国CN-DOS         │
echo. │                          │
echo. │    Y.麻烦大家了          │
echo. │                          │
echo. ╰─────────────╯
echo  ╔═══════════════╗
echo. ║              ‖              ║
echo  ║ A.为人民服务 ‖ e.你是个好人 ║
echo. ║              ‖              ║
echo. ║ B.为人民服务 ‖ f.你是个好人 ║
echo. ║              ‖              ║
echo  ║ C.为人民服务 ‖ g.你是个好人 ║
echo. ║              ‖              ║
echo. ║ D.为人民服务 ‖ h.你是个好人 ║
echo. ║              ‖              ║
echo. ╚═══════════════╝
echo.
echo. 大家好,欢迎光临中国DOS联盟
echo.
echo. 为什么总是这么笨呢?
echo.
echo.  请求大家啊帮忙。
echo.
pause>nul
exit
想得到下面的结果,应该怎样来解决。
能不能麻烦您把代码讲一下。

预想得到结果如下:


  Quote:
        ╭─────────╮
╭───┤   选择如下操作   ├───╮
│      ╰─────────╯      │
│                                  │
│         A. 好运天使              │
│                                  │
│         B. 中国CN-DOS            │
│                                  │
│         Y.麻烦大家了             │
│                                  │
╰─────────────────╯

    ╭─────────╮
╭─┤   选择如下操作   ├─╮
│  ╰─────────╯  │
│                          │
│    A. 好运天使           │
│                          │
│    B. 中国CN-DOS         │
│                          │
│    Y.麻烦大家了          │
│                          │
╰─────────────╯
╔═══════════════╗
║              ‖              ║
║ A.为人民服务 ‖ e.你是个好人 ║
║              ‖              ║
║ B.为人民服务 ‖ f.你是个好人 ║
║              ‖              ║
║ C.为人民服务 ‖ g.你是个好人 ║
║              ‖              ║
║ D.为人民服务 ‖ h.你是个好人 ║
║              ‖              ║
╚═══════════════╝


也就是说,批处理中有多行代码和多个框,

我是想只让它输出所有的框到文本,其他的过滤掉。

再次感谢!!!!


[ Last edited by 516526966 on 2009-5-15 at 14:00 ]



矛盾的世界同样精彩<点击查看>
2009-5-15 13:55
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (286569692)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 5 楼』:  


@echo off&setlocal enabledelayedexpansion
(
for /f "tokens=1,* delims=." %%a in ('type "%~dpnx0"') do (
    set str=%%b
    if "!str:╭─=!" neq "!str!" set r=y
    if "!str:╔═=!" neq "!str!" set r=y
    if defined r echo;!str!
    if "!str:╰─=!" neq "!str!" set r=
    if "!str:╚═=!" neq "!str!" set r=
))>a.txt
exit
[ Last edited by netbenton on 2009-5-17 at 06:30 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 516526966 分数: +2  时间:2009-5-17 07:40




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-5-15 14:07
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
516526966
初级用户




积分 63
发帖 37
注册 2008-8-9
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by netbenton at 2009-5-15 02:07 PM:
@echo off&setlocal enabledelayedexpansion
(
for /f "tokens=1,* delims=." %%a in ('type "%~dpnx0"') do (
    set str=%%b
    if "!str!" equ "         ...

上述代码经测试,失败,只能提取第一个框,

我查了findstr的相关资料,代码如下:
for /f "delims=" %%i in ('findstr /r "╭ │ ╰ ╔ ║ ╚ ┋ 〖 『" %0') do echo %%i>>temp0.txt
再想办法去掉echo



矛盾的世界同样精彩<点击查看>
2009-5-17 07:46
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (286569692)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 7 楼』:  


@echo off&setlocal enabledelayedexpansion
(
for /f "delims=" %%a in ('type "%~dpnx0"') do (
    set str=%%a
    if "!str:╭─=!" neq "!str!" set r=y
    if "!str:╔═=!" neq "!str!" set r=y
    if defined r echo; !str:~5!
    if "!str:╰────────────=!" neq "!str!" set r=
    if "!str:╚═=!" neq "!str!" set r=
))>a.txt
start a.txt
exit

for /f "tokens=1,* delims=. " %%i in ('findstr /r "╭ │ ╰ ╔ ║ ╚ ┋ 〖 『" %0') do echo %%j>>temp0.txt
[ Last edited by netbenton on 2009-5-17 at 06:43 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 516526966 分数: +2  时间:2009-5-18 02:45




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-5-17 08:40
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
516526966
初级用户




积分 63
发帖 37
注册 2008-8-9
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by netbenton at 2009-5-17 08:40 AM:
[code]@echo off&setlocal enabledelayedexpansion
(
for /f "delims=" %%a in ('type "%~dpnx0"') do (
    set str=%%a
    if "!str:╭─=!" neq "!str!"  ...

十分感谢,问题终于解决了。谢谢!~~!~~



矛盾的世界同样精彩<点击查看>
2009-5-18 02:46
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (286569692)  编辑帖子  回复  引用回复
jlty258
初级用户




积分 37
发帖 34
注册 2009-4-13
状态 离线
『第 9 楼』:  

弱弱的问一下,那些曲线怎么输出到文档里面的,无法理解



人生有如此多东西值得去学!
2009-6-9 10:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: