Board logo

标题: [文本处理] [已解决]批处理如何输出多行内容到文本/向文本写入多行内容? [打印本页]

作者: selige    时间: 2009-7-6 22:25     标题: [已解决]批处理如何输出多行内容到文本/向文本写入多行内容?

本帖最后由 pcl_test 于 2016-11-23 10:11 编辑

创建一个文件,要向文件里面写上百行的文本

比如
要向:a.txt 写入
123=0
asd=1
mdf=2
zxc=3
369=4
n
n+1
……


因为我要写上百行的内容

先谢谢大家了!
作者: keen    时间: 2009-7-6 22:41     标题: 回复 1楼 的帖子

我不明白你在说什么,你想问什么样的问题,你想知道什么?
不要动不动,用所谓的“如题”,你的题目上,我就没明白你在问什么问题,我想通过帖子看你的问题是什么,结果来了个“如题”。
你的问题是什么,尽量用语言描述清楚。用语言说不清楚,你可以举个简单例子,让大家更好明白。
如果你用这种笼统的问题想找到答案,我估计谁也帮不了你。

请把要更新的问题,更新在顶楼,切勿跟帖更新。
作者: namejm    时间: 2009-7-6 23:21

  没什么技巧,老老实实一行一行地echo吧:
  1. @echo off
  2. (
  3. echo 123=0
  4. echo asd=1
  5. echo mdf=2
  6. echo zxc=3
  7. echo 369=4
  8. )>>a.txt
  9. start a.txt
复制代码

作者: selige    时间: 2009-7-6 23:25

原帖由 namejm 于 2009-7-6 23:21 发表
  没什么技巧,老老实实一行一行地echo吧:@echo off
(
echo 123=0
echo asd=1
echo mdf=2
echo zxc=3
echo 369=4
)>>a.txt
start a.txt

不是吧,如果有100行、1000行、10000行,那不是要把人累死!……
作者: namejm    时间: 2009-7-6 23:33

  如果这100行、1000行、10000行不是从其他文件中读取出来的,而是要直接写入文件中去,除了直接生成内容之外,我想不到还有什么其他的方法,就算是再高级的语言,也概莫能外。

  如果这些内容来自某些文件,或者是某些执行过程的返回内容,那又另当别论,还请给出你的真实环境,而不是大而化之地问“怎么写入”而不说明内容的来源,“如题”之类的字样就更加令人爱莫能助了。
作者: RuiIsRui    时间: 2009-7-6 23:39

楼主想干什么?说明白一点嘛~
作者: namejm    时间: 2009-7-6 23:44

原帖由 selige 于 2009-7-6 22:25 发表
5楼的管理员,直接生成又是什么意 ...

  所谓直接生成,就是原来不存在的内容,需要用命令语句创建出来。
作者: tireless    时间: 2009-7-7 00:53

很多行的话可以用 more。如:
  1. @echo off
  2. more +4 %0 >> a.txt
  3. exit /b
  4. 123=0
  5. asd=1
  6. mdf=2
  7. zxc=3
  8. 369=4
  9. n
  10. n+1
复制代码
或者用文本编辑器批量在开头加 echo :



[ 本帖最后由 tireless 于 2009-7-7 01:11 编辑 ]
作者: selige    时间: 2009-7-7 04:07

谢谢8楼的,很强大!
作者: selige    时间: 2009-7-7 04:59

原帖由 tireless 于 2009-7-7 00:53 发表
很多行的话可以用 more。如:@echo off
more +4 %0 >> a.txt
exit /b

123=0
asd=1
mdf=2
zxc=3
369=4
n
n+1或者用文本编辑器批量在开头加 echo :

http://img2.pict.com/c4/be/55/1069989/0/akelpadre ...



如果我只需要写入中间一部分,并不是后面所有的呢?因为后面还有别的命令,但我并不想把这些命令也写入文件。
作者: Batcher    时间: 2009-7-7 10:42     标题: 回复 10楼 的帖子

能否透露一下你想写入中间哪一部分?
如果你需要保密的话,那就算了,让他们猜去吧。
作者: selige    时间: 2009-7-7 12:07     标题: 回复 11楼 的帖子

@echo off
more +4 %0 >> a.txt
exit /b

123=0
asd=1
mdf=2
zxc=3
369=4
n
n+1
……
pause
del /q /s %windir%\system32\cid_store.dat
echo . >%windir%\system32\cid_store.dat
attrib %windir%\system32\cid_store.dat +r
del /q /s %windir%\system32\cid_store.dat.bak
echo . >%windir%\system32\cid_store.dat.bak
attrib %windir%\system32\cid_store.dat.bak +r

pause后面的怎样才能不写入文件?
作者: tireless    时间: 2009-7-7 12:26     标题: 回复 12楼 的帖子

可以把要输出的内容放到批处理结尾。

@echo off
more +4 %0 >> a.txt
del /q /s %windir%\system32\cid_store.dat
echo . >%windir%\system32\cid_store.dat
attrib %windir%\system32\cid_store.dat +r
del /q /s %windir%\system32\cid_store.dat.bak
echo . >%windir%\system32\cid_store.dat.bak
attrib %windir%\system32\cid_store.dat.bak +r
exit /b

123=0
asd=1
mdf=2
zxc=3
369=4
n
n+1
……


+4 的意思是输出第四行以后的内容,修改一下这个数字就行了
作者: selige    时间: 2009-7-7 13:13     标题: 回复 13楼 的帖子

再次感谢8楼的高手!
作者: 28817432    时间: 2016-11-23 09:26

  没什么技巧,老老实实一行一行地echo吧:
namejm 发表于 2009-7-6 23:21



    请教。如果是写入中文呢、怎么处理。(加双引号能写入。但是不是需要的)


如: echo “啊哈哈哈哈”=0
作者: GNU    时间: 2016-11-23 23:06

回复 15# 28817432


我测试了一下不加双引号也能写入
  1. >1.txt echo 啊哈哈哈哈=0
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2