中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 写入%var%到txt文件第一行的问题
« [1] [2] »
作者:
标题: 写入%var%到txt文件第一行的问题 上一主题 | 下一主题
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『楼 主』:  写入%var%到txt文件第一行的问题

set var=123456

test.txt
00
11
22
33

我想把test.txt内容写为
123456
00
11
22
33


要求不生成临时文件,试了好多方法都不可以,请大家给个方案~

2006-10-26 07:47
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


  我也试了好多方法,最后终于被我试出来了,而且测试也是成功的代码如下:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set var=123456
set str=
for /f "TOKENS=*" %%i in ('type a.txt') do (
        set str=!str!#%%i
)
call :no %str%
goto :eof

:no
set "a=%1"
echo %var%>a.txt
:redo
for /f "tokens=1 delims=#" %%l in ("%a%") do (
        echo %%l>>a.txt
        for /f "tokens=1* delims=#" %%p in ("%a%") do (
                set a=#%%q
                goto :redo
        )
)


   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-10-26 20:56


2006-10-26 10:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 3 楼』:  


@echo off
setlocal ENABLEDELAYEDEXPANSION
    set file=test.txt
    for /f "delims=: tokens=1,*" %%i in ('findstr /n . %file%') do set "%%i=%%j" & set num=%%i
    echo 123456>%file%
    for /l %%i in (1,1,%num%) do if defined %%i (>>%file% echo !%%i!) else (>>%file% echo.)
基本解决空行,&,|的问题.

   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-10-26 20:56


2006-10-26 11:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


  不得不佩服版主,看到了差距了。继续学习ing…………


[ Last edited by lxmxn on 2006-10-26 at 11:10 AM ]

2006-10-26 11:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 5 楼』:  

3楼代码不错



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-10-26 20:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 6 楼』:  

强,看了这帖,学习了不少。

2006-10-26 20:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 7 楼』:  

精彩!学习了~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-26 21:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 8 楼』:  

我也顺便来一个吧,

@echo off&setlocal
for /f "tokens=*" %%a in ('echo 12345^&more^<test.txt') do (
if not defined a (>test.txt echo %%a&set a=1) else >>test.txt echo %%a )

谢谢版主提醒

[ Last edited by 9527 on 2006-10-27 at 01:26 AM ]



我今后在论坛的目标就是做个超级坏人!!!
2006-10-26 22:06
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:  


  9527 兄的代码也强,不过有一点不明白,为什么要加上"set a=1"这一句呢?


2006-10-27 00:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

9527 兄的代码会忽略空格后面的字



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-10-27 01:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 11 楼』:  

9527 兄的这个if not defined a刚刚查了下才懂,学习ing

2006-10-27 01:23
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 12 楼』:  

9527 能想到这样用真是厉害。不过好像空行被忽略了。有没办法改进下呢?

PS:既然已经想到连用,可能顺便加上一句删除也不错,这样后面就不用定义变量 a 了。

[ Last edited by NaturalJ0 on 2006-10-27 at 02:22 AM ]

2006-10-27 01:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 13 楼』:  

set a=1就是设置a为1,如果不设置a为1那么>test.txt echo %%a就一直会执行



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-10-27 04:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wtp791211
初级用户





积分 34
发帖 20
注册 2006-10-15
状态 离线
『第 14 楼』:  

强,不过有些看得不在明白,偶还得继续努力!

2006-10-27 04:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 15 楼』:  

强呀!

建议:
增加1个”收藏“选项,将好的帖子收藏起来,以后直接点收藏就能出来!

2007-3-10 02:34
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: