![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 13:34 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何用批处理将以下内容写入a.txt |
| 可打印版本 874 / 13 |
| 第1楼 pinghu | 发表于 2008-02-06 01:21 |
| 中级用户 发帖 130 积分 307 | |
|
如何用批处理将以下内容写入a.txt set num=0
setlocal enabledelayedexpansion for /f "delims=" %%i in (input.txt) do call :intercept "%%i" echo value=%str_% pause goto :eof :intercept set str=%1 set str=%str:~2,-2% if not "%str%"=="" echo. "%str:~0,1%"|findstr "[0-9]">nul && ( set num=1&set str_=!str_!%str:~0,1%&&call :intercept " !str:~1! ")||( if %num% equ 0 call :intercept " !str:~1! " ) goto :eof |
|
| 第2楼 terse | 发表于 2008-02-06 01:31 |
| 银牌会员 发帖 946 积分 2,404 | |
|
more +1 %0>aaaa.txt &&exit
set num=0 setlocal enabledelayedexpansion for /f "delims=" %%i in (input.txt) do call :intercept "%%i" echo value=%str_% pause goto :eof :intercept set str=%1 set str=%str:~2,-2% if not "%str%"=="" echo. "%str:~0,1%"|findstr "[0-9]">nul && ( set num=1&set str_=!str_!%str:~0,1%&&call :intercept " !str:~1! ")||( if %num% equ 0 call :intercept " !str:~1! " ) goto :eof |
|
| 第3楼 pinghu | 发表于 2008-02-06 11:36 |
| 中级用户 发帖 130 积分 307 | |
|
我的本意是问一问
每一行都用echo的形式怎么输出。这个more的用法我赚到了!! |
|
| 第4楼 pinghu | 发表于 2008-02-06 11:59 |
| 中级用户 发帖 130 积分 307 | |
|
我这个批处理后面还有其他命令呢 ,用2楼的方法不是把批处理自身的命令也写进txt里面了?
|
|
| 第5楼 slore | 发表于 2008-02-06 12:20 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你改成+5看看效果
|
|
| 第6楼 pinghu | 发表于 2008-02-06 15:19 |
| 中级用户 发帖 130 积分 307 | |
|
+5的方法我试了,还是取到文件末尾啊
我不想取道文件末尾,只想截取一个批处理文件中间的几行,用这个命令还行吗 |
|
| 第7楼 pinghu | 发表于 2008-02-06 15:39 |
| 中级用户 发帖 130 积分 307 | |
|
用echo语句一行一行的写上述bat命令如何实现
|
|
| 第8楼 pinghu | 发表于 2008-02-06 15:46 |
| 中级用户 发帖 130 积分 307 | |
|
我如果写echo set num=0就会输入为空我要是写echo “set num=0”就会多出双引号
要把命令写进文本就那么难吗 |
|
| 第9楼 slore | 发表于 2008-02-06 16:17 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
echo set num=0 >a.txt
|
|
| 第10楼 pinghu | 发表于 2008-02-06 16:38 |
| 中级用户 发帖 130 积分 307 | |
|
在slore的提示下我终于搞定了 echo set num=0 > a.txt
echo setlocal enabledelayedexpansion >> a.txt echo for /f "delims=" %%%%i in (input.txt) do call :intercept "%%%%i" >> a.txt echo echo value=%%str_%% >> a.txt echo pause >> a.txt echo goto :eof >> a.txt echo. >> a.txt echo :intercept >> a.txt echo set str=%%1 >> a.txt echo set str=%%str:~2,-2%% >> a.txt echo if not "%%str%%"=="" echo. "%%str:~0,1%%"^|findstr "[0-9]"^>nul ^&^& ( >>a.txt echo set num=1^&set str_=!str_!%%str:~0,1%%^&^&call :intercept " !str:~1! ")^|^|( >>a.txt echo if %%num%% equ 0 call :intercept " !str:~1! " >> a.txt echo ) >> a.txt echo goto :eof >> a.txt |
|
| 第11楼 pinghu | 发表于 2008-02-06 17:36 |
| 中级用户 发帖 130 积分 307 | |
|
我总结的经验是><|&用^>^<^|^&来替换,%用%%来替换
|
|
| 第12楼 erick456 | 发表于 2008-02-06 17:52 |
| 新手上路 发帖 2 积分 4 | |
|
顶下人气
|
|
| 第13楼 zlp1982994 | 发表于 2008-02-08 17:10 |
| 新手上路 发帖 2 积分 4 | |
|
学到了!
|
|
| 第14楼 pinghu | 发表于 2008-02-09 15:49 |
| 中级用户 发帖 130 积分 307 | |
|
发现一个问题 echo set num=0 >a.txt 执行的结果:set num=0的后面有一个空格这会影响数据的使用,解决办法:
(echo set num=0)>a.txt |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |