Board logo

标题: 将a.txt的内容移到b.txt,要求在下面 [打印本页]

作者: wgsonline     时间: 2008-9-13 17:26    标题: 将a.txt的内容移到b.txt,要求在下面

请各位赐教:
想把a.txt中的内容删除指定的某行之后再移到b.txt,
在a.txt中有空行,移过来时也要求有空行.

a.txt:
[good]
i'am chinse

[well]
i'love this game
aa=qweeeerttyy

[other]
safsdfasdfasdfsfdfsdf

想要b.txt的格式为:
[good]
i'am chinse

[well]
i'love this game

[other]
safsdfasdfasdfsfdfsdf

我的思路:
for /f "tokens=*" %%a in (a.txt) do @echo %%a|findstr /v /i /C:aa>> b.txt
但执后空行都没了。。。。。
作者: HAT     时间: 2008-9-13 17:45

@echo off
findstr /v "aa" a.txt>b.txt

作者: wgsonline     时间: 2008-9-16 16:43    标题: 这样就行了

哈哈
谢谢兄台
作者: wgsonline     时间: 2008-9-16 16:49
不好意思,再请教一下:
如果我想把作用反过来,就是由b.txt得到a.txt,执行后能在a.txt中加入aa=qweeeerttyy这一行,且a.txt的排版格式与b.txt的一样
作者: HAT     时间: 2008-9-16 18:26
aa=qweeeerttyy插在什么地方?文本最后面?
作者: forssell     时间: 2008-9-17 12:34
借來一問
如果想打 第十一個位同第十二個位系XX 便將一行放進 B.txt

A.txt

0123456789XXasldfjslfjlasf
asldfjskldfjlsajflsjalfjslfjlasjlfdla
sdfjlsagjlsjglkjhlajsljlkjhlsjhlsjlhjlhl
dkgihirutjXXasldfjslfjlasf
sljdlgksldgjlajhsljhlsdkjhls
0123456DEFGXXasldfjslfjlasf

結果
B.txt

0123456789XXasldfjslfjlasf
dkgihirutjXXasldfjslfjlasf
0123456DEFGXXasldfjslfjlasf


謝謝!!!!!!!!!!!
作者: HAT     时间: 2008-9-17 13:29    标题: Re 6楼


@echo off
setlocal enabledelayedexpansion
>"b.txt" type nul
for /f "usebackq tokens=*" %%a in ("a.txt") do (
  set row=%%a
  if "!row:~10,2!" equ "XX" (
    >>"b.txt" echo %%a
  )
)

作者: forssell     时间: 2008-9-17 13:41
好害利啊  謝謝!!!

如果同時大細字母都認到呢?

"XX" or "xx" ?
作者: HAT     时间: 2008-9-17 16:06    标题: Re 8楼


@echo off
setlocal enabledelayedexpansion
>"b.txt" type nul
for /f "usebackq tokens=*" %%a in ("a.txt") do (
  set row=%%a
  if /i "!row:~10,2!" equ "XX" (
    >>"b.txt" echo %%a
  )
)

作者: wgsonline     时间: 2008-9-17 16:10
如第一楼的两个文本,现在是从b.txt得到a.txt,即在b.txt加入一行aa=qweeeerttyy,得到a.txt
这一行只是在加在中间,随便哪里都行
b.txt的格式为:
[good]
i'am chinse

[well]
i'love this game

[other]
safsdfasdfasdfsfdfsdf



a.txt:
[good]
i'am chinse

[well]
i'love this game
aa=qweeeerttyy

[other]
safsdfasdfasdfsfdfsdf
作者: HAT     时间: 2008-9-17 16:21    标题: Re 10楼


@echo off
setlocal enabledelayedexpansion
set count=0
>a.txt type nul
for /f "tokens=1-2 delims=:" %%a in ('findstr /n .* b.txt') do (
  set /a count+=1
  if !count! equ 5 (
    >>a.txt echo.aa=qweeeerttyy
  )
  if "%%b" equ "" (
    >>a.txt echo.
  ) else (
    >>a.txt echo.%%b
  )
)

作者: wgsonline     时间: 2008-9-17 16:26
HAT
高手,太感谢你啦!