标题: 写入%var%到txt文件第一行的问题
[打印本页]
作者: vkill
时间: 2006-10-26 07:47
标题: 写入%var%到txt文件第一行的问题
set var=123456
test.txt
00
11
22
33
我想把test.txt内容写为
123456
00
11
22
33
要求不生成临时文件,试了好多方法都不可以,请大家给个方案~
作者: lxmxn
时间: 2006-10-26 10:26
我也试了好多方法,最后终于被我试出来了,而且测试也是成功的代码如下:
@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
)
)
作者: 3742668
时间: 2006-10-26 11:00
@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.)
基本解决空行,&,|的问题.
作者: lxmxn
时间: 2006-10-26 11:09
不得不佩服版主,看到了差距了。继续学习ing…………
[
Last edited by lxmxn on 2006-10-26 at 11:10 AM ]
作者: 不得不爱
时间: 2006-10-26 20:52
3楼代码不错
作者: NaturalJ0
时间: 2006-10-26 20:53
强,看了这帖,学习了不少。
作者: redtek
时间: 2006-10-26 21:00
精彩!学习了~:)
作者: 9527
时间: 2006-10-26 22:06
我也顺便来一个吧,
@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 ]
作者: lxmxn
时间: 2006-10-27 00:02
9527 兄的代码也强,不过有一点不明白,为什么要加上"set a=1"这一句呢?
作者: 不得不爱
时间: 2006-10-27 01:03
9527 兄的代码会忽略空格后面的字
作者: vkill
时间: 2006-10-27 01:23
9527 兄的这个if not defined a刚刚查了下才懂,学习ing
作者: NaturalJ0
时间: 2006-10-27 01:54
9527 能想到这样用真是厉害。不过好像空行被忽略了。有没办法改进下呢?
PS:既然已经想到连用,可能顺便加上一句删除也不错,这样后面就不用定义变量 a 了。
[
Last edited by NaturalJ0 on 2006-10-27 at 02:22 AM ]
作者: 不得不爱
时间: 2006-10-27 04:28
set a=1就是设置a为1,如果不设置a为1那么>test.txt echo %%a就一直会执行
作者: wtp791211
时间: 2006-10-27 04:54
强,不过有些看得不在明白,偶还得继续努力!
作者: xycoordinate
时间: 2007-3-10 02:34
强呀!
建议:
增加1个”收藏“选项,将好的帖子收藏起来,以后直接点收藏就能出来!
作者: joyoustar
时间: 2007-3-21 00:59
好东西啊。
作者: swallow
时间: 2007-3-21 04:53
标题: 标题: 写入%var%到txt文件第一行的问题
我是菜鸟,看懵了。
作者: wudixin96
时间: 2007-4-6 22:04
一个比一个删减。一个比一个难理解
作者: kavenlee72
时间: 2009-1-21 11:24
上面的代码在纯DOS(比如DOS7.1)下不能运行
作者: netbenton
时间: 2009-1-21 18:48
标题: 一句搞定
for /f "tokens=1,2* delims=:" %%a in ('echo a:%var%^&findstr/o ".*" test.txt^&cd.^>test.txt') do echo.%%b>>test.txt
不会丢掉空行
在9527的基础上改进的
[
Last edited by netbenton on 2009-1-21 at 19:58 ]
作者: hbwhyin
时间: 2010-3-19 02:40
要是在前面加行号呢,比如
1=
2=
3=
4=
作者: hbwhyin
时间: 2010-3-19 02:42
Quote: |
Originally posted by vkill at 2006-10-26 07:47 AM:
set var=123456
test.txt
00
11
22
33
我想把test.txt内容写为
123456
00
11
22
33
要求不生成临时文件,试了好多方法都不可以,请大家给个方案~ |
|
如果是每行加行号呢