Board logo

标题: 不能输出理想的文本文件,请大家帮忙。【已解决】 [打印本页]

作者: 516526966     时间: 2009-5-14 13:52    标题: 不能输出理想的文本文件,请大家帮忙。【已解决】

现有一个批处理文件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 ]
作者: 516526966     时间: 2009-5-15 05:26
麻烦大虾们给指点一下,谢谢了。。。
作者: netbenton     时间: 2009-5-15 07:03

@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 ]
作者: 516526966     时间: 2009-5-15 13:55


  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 ]
作者: netbenton     时间: 2009-5-15 14:07

@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 ]
作者: 516526966     时间: 2009-5-17 07:46


  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
作者: netbenton     时间: 2009-5-17 08:40

@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 ]
作者: 516526966     时间: 2009-5-18 02:46


  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!"  ...

十分感谢,问题终于解决了。谢谢!~~!~~
作者: jlty258     时间: 2009-6-9 10:54
弱弱的问一下,那些曲线怎么输出到文档里面的,无法理解