![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 16:01 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎么通过批处理建立一个文件,并往里面写入需要的内容 |
| 可打印版本 3,692 / 10 |
| 第1楼 星辰月 | 发表于 2004-09-18 00:00 |
| 初级用户 发帖 7 积分 122 | |
|
怎么通过批处理建立一个文件,并往里面写入需要的内容 比如我在windows系统下,用一个批处理,目的是要在C:\windows目录下创建一个名为boot.ini的文件,并写入如下内容
timeout=3 Default=multi(0)disk(0)rdisk(0)partition(1)\WINNT multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect C:\="Microsoft Windows 98" ,并且这些都用这个批处理自动完成,不需要手动输入 我查了论坛里的贴子,并看了置顶贴,均找不到我要的答案,我试过用copy con命令来实现,但要手动输入内容,有高手帮我一下吗 |
|
| 第2楼 龙王 | 发表于 2004-09-19 00:00 |
| 银牌会员 发帖 334 积分 1,186 | |
|
有好多方法,用echo和定向符是其中之一句首echo,句尾定向到文件名第一行单定向其它重定向符号例如echo >C:\windows\boot.iniecho timeout=3 >>C:\windows\boot.ini
echo Default=multi(0)disk(0)rdisk(0)partition(1)\WINNT >>C:\windows\boot.ini... |
|
| 第3楼 星辰月 | 发表于 2004-09-19 00:00 |
| 初级用户 发帖 7 积分 122 | |
|
谢谢了,老兄,我试过了,行,非常感谢,你说有很多方法,还有其他的吗
还有就是,比如说我要修改某一个文件,也是用echo吗 |
|
| 第4楼 星辰月 | 发表于 2004-09-19 00:00 |
| 初级用户 发帖 7 积分 122 | |
|
我用二楼的老兄所说的方法,通过批处理a.bat,想往批处理b.bat里面写入如下内容echo wasse>c:\1.txt操作是这样的
在批处理A.bat中写入 echo echo wasse>c:\1.txt >b.bat但是在b.bat中看到的却写入的是echo wasse,而>c:\1.txt,却没有了,为什么,难道是我的语法错了,还是不两个>连用不行呢 |
|
| 第5楼 Climbing | 发表于 2004-09-19 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
如果是在2000/xp的环境下,在>前面加上^字符就可以了。例如: echo echo wasse ^> c:\1.txt > b.bat但如果是Windows 98或者纯DOS的环境,这种方法恐怕就不好用了。一种简单的方法(需要用到Lmod这个第三方工具):echo echo wasse | lmod /L1 > b.bat不用第三方工具应该也是可以的,但需要用到Prompt这个命令,我一直没有特别研究明白这种方法,大概是这样:echo @prompt echo wasse $g c:\1.txt > temp.bat
%comspec% /c temp.bat > b.bat 执行过程如下:C:\>echo @prompt echo wasse $g c:\1.txt > temp.bat C:\>%comspec% /c temp.bat > b.bat C:\>type b.bat echo wasse > c:\1.txt 上面这种方法主要是参考HDKP(HardDisk Killer Pro)的批处理写的,这种方法我试验只能运行于纯DOS环境(或者98的DOS环境),在xp下是不能用的。 |
|
| 第6楼 星辰月 | 发表于 2004-09-20 00:00 |
| 初级用户 发帖 7 积分 122 | |
|
非常感谢Climbing ,正在着手这方便的学习,谢谢
|
|
| 第7楼 willsort | 发表于 2004-10-02 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re Climbing:
以下方法经测试可以运行于NT系列的CMD中,当然在此9x系列和纯DOS下更没有问题。 |
|
| 第8楼 ^_^ | 发表于 2004-10-02 00:00 |
| 初级用户 发帖 10 积分 85 | |
以下是引用willsort在2004-10-2 13:32:21的发言: |
|
| 第9楼 willsort | 发表于 2004-10-02 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re ^_^: 多谢指教。看来我的测试很不彻底。 ECHO是我的疏忽,EXIT则是CMD.EXE的的怪癖了,据我测试,加上静默参数/Q可以解决问题,然后FIND就变得多余了。 echo exit | %comspec% /Q /K prompt echo wasse $g c:\1.txt > b.bat 但我不知道9X下的COMMAND碰到/Q会怎么处理,如果万幸是忽略的话,那么前面的方法改一改,将仍然是通用的,否则就必须根据环境调用不同的命令行了,那时最不愿意见到的。最近碰到很多9X和NT的不兼容问题,在我编写通用性程序的任务面前树起了一座座大山,头疼中
|
|
| 第10楼 ^_^ | 发表于 2004-10-04 00:00 |
| 初级用户 发帖 10 积分 85 | |
|
谢谢!能否说一下%comspec%的用法呢?
|
|
| 第11楼 LK | 发表于 2006-08-26 10:20 |
| 高级用户 发帖 309 积分 915 | |
|
我常在XP/2003下直接运行批处理: COPY file1+file1 file3 的方法... |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |