中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:cndos.rths.ml  论坛域名:cndos.rths.ml/forum

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 
« « 2021-7 » »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

栏目分类

最热的 5 篇文章

搜索网志文章


在线用户 : 4
0 位会员   4 位游客
如何用批处理将以下内容写入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

评论

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

terse 2008-2-6 01:31

我的本意是问一问
每一行都用echo的形式怎么输出。这个more的用法我赚到了!!

pinghu 2008-2-6 11:36

我这个批处理后面还有其他命令呢 ,用2楼的方法不是把批处理自身的命令也写进txt里面了?

pinghu 2008-2-6 11:59

你改成+5看看效果

slore 2008-2-6 12:20

+5的方法我试了,还是取到文件末尾啊
我不想取道文件末尾,只想截取一个批处理文件中间的几行,用这个命令还行吗

pinghu 2008-2-6 15:19

用echo语句一行一行的写上述bat命令如何实现

pinghu 2008-2-6 15:39

我如果写echo set num=0就会输入为空我要是写echo “set num=0”就会多出双引号
要把命令写进文本就那么难吗

pinghu 2008-2-6 15:46

echo set num=0 >a.txt

slore 2008-2-6 16:17

在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

pinghu 2008-2-6 16:38

我总结的经验是><|&用^>^<^|^&来替换,%用%%来替换

pinghu 2008-2-6 17:36

顶下人气

erick456 2008-2-6 17:52

学到了!

zlp1982994 2008-2-8 17:10

发现一个问题
echo set num=0 >a.txt 执行的结果:set num=0的后面有一个空格这会影响数据的使用,解决办法:
(echo set num=0)>a.txt

pinghu 2008-2-9 15:49

发表评论
标题:   [可选]
选项:
 禁用 URL 识别
 禁用 Smilies
 禁用 Discuz! 代码
 使用个人签名
 接收新回复邮件通知

           
[完成后可按 Ctrl+Enter 发布]

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



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011