中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 23:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 不能输出理想的文本文件,请大家帮忙。【已解决】 查看 960 回复 8
楼 主 不能输出理想的文本文件,请大家帮忙。【已解决】 发表于 2009-05-14 13:52 ·  中国 山东 淄博 联通
初级用户
积分 63
发帖 37
注册 2008-08-09 11:46
18年会员
UID 123026
性别 男
状态 离线
现有一个批处理文件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的内容是


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




请求高手的指点和帮助


谢谢了。

[ Last edited by 516526966 on 2009-5-18 at 02:48 ]
2 发表于 2009-05-15 05:26 ·  中国 山东 淄博 联通
初级用户
积分 63
发帖 37
注册 2008-08-09 11:46
18年会员
UID 123026
性别 男
状态 离线
麻烦大虾们给指点一下,谢谢了。。。
3 发表于 2009-05-15 07:03 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
516526966 +2 2009-05-15 13:43
精简
=> 个人网志
4 发表于 2009-05-15 13:55 ·  中国 山东 淄博 联通
初级用户
积分 63
发帖 37
注册 2008-08-09 11:46
18年会员
UID 123026
性别 男
状态 离线
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


想得到下面的结果,应该怎样来解决。
能不能麻烦您把代码讲一下。

预想得到结果如下:

╭─────────╮
╭───┤ 选择如下操作 ├───╮
│ ╰─────────╯ │
│ │
│ 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 ]
5 发表于 2009-05-15 14:07 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
516526966 +2 2009-05-17 07:40
精简
=> 个人网志
6 发表于 2009-05-17 07:46 ·  中国 山东 淄博 联通
初级用户
积分 63
发帖 37
注册 2008-08-09 11:46
18年会员
UID 123026
性别 男
状态 离线
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
7 发表于 2009-05-17 08:40 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
516526966 +2 2009-05-18 02:45
精简
=> 个人网志
8 发表于 2009-05-18 02:46 ·  中国 山东 淄博 联通
初级用户
积分 63
发帖 37
注册 2008-08-09 11:46
18年会员
UID 123026
性别 男
状态 离线
Originally posted by netbenton at 2009-5-17 08:40 AM:
@echo off&setlocal enabledelayedexpansion
(
for /f "delims=" %%a in ('type "%~dpnx0"') do (
set str=%%a
if "!str:╭─=!" neq "!str!" ...



十分感谢,问题终于解决了。谢谢!~~!~~
9 发表于 2009-06-09 10:54 ·  中国 天津 联通
初级用户
积分 37
发帖 34
注册 2009-04-13 01:52
17年会员
UID 142798
性别 男
状态 离线
弱弱的问一下,那些曲线怎么输出到文档里面的,无法理解
人生有如此多东西值得去学!
论坛跳转: