![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 14:15 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理怎样修改文件里的内容 |
| 可打印版本 2,383 / 17 |
| 第1楼 westwind | 发表于 2008-05-13 11:14 |
| 初级用户 发帖 28 积分 72 | |
|
批处理怎样修改文件里的内容 我现在有个配置文件config.ini,内容是:
update=N updateDateTime=200804180912 Backup=N BackupDateTime=200804180912 DeleteBak=N DateTimeByDel=200802180912 FallBack=N DateTimeByFallback=200802180912 想通过一个批处理,修改其中的某些参数的值,如令update=Y, updateDateTime=当前时间,不想通过建临时文件--->删旧的--->临时文件重命名的方法实现,直接在config.ini里面改,其他的值不变。 谢了! |
|
| 第2楼 HAT | 发表于 2008-05-13 11:59 |
| 版主 发帖 5,017 积分 9,023 | |
| 第3楼 huahua0919 | 发表于 2008-05-13 12:10 |
| 银牌会员 发帖 780 积分 1,608 | |
|
批处理
[ Last edited by huahua0919 on 2008-5-13 at 12:26 PM ] |
|
| 第4楼 bat-zw | 发表于 2008-05-13 12:15 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我也来一个: [ Last edited by zw19750516 on 2008-5-13 at 12:20 PM ] |
|
| 第5楼 huahua0919 | 发表于 2008-05-13 12:16 |
| 银牌会员 发帖 780 积分 1,608 | |
|
晕。我那就不是纯的啊~!
|
|
| 第6楼 bat-zw | 发表于 2008-05-13 12:19 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
回楼上,我发了才发现你已经发了。
如文件只是固定修改前两行的话就可以简化如下: [ Last edited by zw19750516 on 2008-5-13 at 12:32 PM ] |
|
| 第7楼 westwind | 发表于 2008-05-13 12:22 |
| 初级用户 发帖 28 积分 72 | |
|
huahua0919的不行啊,执行了没反映,zw19750516的运行完之后,config.ini文件里其他的数据都没了,只剩
update=y DateTimeByFallback=200802180912 zw19750516的第2个版本运行后,config.ini没有变化。。 [ Last edited by westwind on 2008-5-13 at 12:28 PM ] |
|
| 第8楼 huahua0919 | 发表于 2008-05-13 12:27 |
| 银牌会员 发帖 780 积分 1,608 | |
|
你再试试,我改了,是编辑的问题
|
|
| 第9楼 bat-zw | 发表于 2008-05-13 12:33 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我开始是粗心(老是这个问题)把config.ini打成confing.ini了,请再测试
|
|
| 第10楼 westwind | 发表于 2008-05-13 12:38 |
| 初级用户 发帖 28 积分 72 | |
|
都OK!
感谢huahua0919和zw19750516的热心解答! 学习。~ |
|
| 第11楼 HAT | 发表于 2008-05-13 12:40 |
| 版主 发帖 5,017 积分 9,023 | |
|
要想用纯P把时间转换成200804180912这种格式,又要考虑通用性,是比较困难的。
|
|
| 第12楼 bat-zw | 发表于 2008-05-13 12:44 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
最终修正版: 修正当前时间格式
|
|
| 第13楼 HAT | 发表于 2008-05-13 13:06 |
| 版主 发帖 5,017 积分 9,023 | |
|
我觉得纯P如果不通过读注册表判断日期/时间格式,是很难写出通用的代码的。
|
|
| 第14楼 westwind | 发表于 2008-05-13 13:08 |
| 初级用户 发帖 28 积分 72 | |
|
想问下zw19750516,我在config.ini的第1,2行加上2个参数:
publish=N publishDateTime= update=N updateDateTime=200805131249 Backup=N BackupDateTime=200804180912 DeleteBak=N DateTimeByDel=200802180912 FallBack=N DateTimeByFallback=200802180912 然后对批处理进行如下修改,但有问题: @echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('type config.ini') do ( set /a n+=1 if !n! equ 1( echo publish=Y>config.ini ) else ( if !n! equ 2 ( echo publishDateTime=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%>>config.ini ) else ( if !n! equ 3 ( echo update=Y>config.ini ) else ( if !n! equ 4 ( echo updateDateTime=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%>>config.ini ) else ( echo %%i>>config.ini ) ) ) ) ) echo 修改完毕! pause>nul 多谢! |
|
| 第15楼 terse | 发表于 2008-05-13 14:29 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off
for /f "tokens=1* delims==" %%i in (config.ini) do call:lp "%%i" "%%j" echo 修改完毕! pause>nul goto :eof :lp if %1=="publish" echo publish=Y>config.ini&goto :eof if %1=="publishDateTime" echo publishDateTime=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%>>config.ini&goto :eof if %1=="update" echo update=Y>>config.ini&goto :eof if %1=="updateDateTime" echo updateDateTime=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%>>config.ini&goto :eof >>config.ini echo %~1=%~2 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |