中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 20:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 修改1.ini的第2行第5个字为A.bat 查看 1,443 回复 10
楼 主 修改1.ini的第2行第5个字为A.bat 发表于 2006-12-10 01:25 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
@echo off
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type "x:\1.ini"' ) do (
set str=%%i
set /a num+=1
if !num! equ 2 set var=%%i
if !num! equ 2 set var1=!var:~0,4!
if !num! equ 2 set var2=!var:~5!
if !num! equ 2 set str=!var1!A!var2!
echo !str! >> x:\_1.ini
)
del x:\1.ini
ren x:\_1.ini 1.ini
start x:\1.ini
pause

[ Last edited by a9319751 on 2006-12-12 at 06:58 AM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
lxmxn +3 2006-12-10 07:35
redtek +3 2006-12-10 07:45
bat c c++
2 发表于 2006-12-10 04:11 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
正需要这个。支持。
3 发表于 2006-12-10 07:35 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  巧妙利用字符截取来达到目的,漂亮。
4 发表于 2006-12-10 07:56 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
呵呵,还是喜欢set num=%%i&set %%i=%%j
5 发表于 2006-12-10 13:02 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
『第 4 楼』:

呵呵,还是喜欢set num=%%i&set %%i=%%j

不错,set num=%%i & set "%%i=%%j"的确是最灵活的方法。
若是追求理论上的效率,不妨结合几种方法来实现:
@echo off
setlocal enabledelayedexpansion
set row=2
set line=5
set file=a.txt
set newFile=b.txt 4>b.txt
set /a newLine = %line% - 1
set /a before = %row% - 1
for /l %%i in (1,1,%before%) do set "str=^^%%i:!str!"
for /f "delims=: tokens=1*" %%i in ('findstr /n .* %file% ^| findstr /ir "%str%"') do (echo.%%j)>>%newFile%
for /f "skip=%before% delims=" %%i in (%file%) do set "midRow=%%i" & goto next
:next
(echo,!midRow:~0,%newLine%!cn-dos!midRow:~%line%!)>>%newFile%
more +%row% %file% >>%newFile%
exit /b 0
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
lxmxn +5 2006-12-10 13:44
6 发表于 2006-12-10 13:46 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  版主的强啊。如果在前面set/p一下,那就可以自定义要插入的位置,字符了。
  

  加分~
7 发表于 2007-02-02 06:01 ·  中国 陕西 汉中 电信
初级用户
积分 136
发帖 49
注册 2007-01-04 08:28
19年会员
UID 75413
性别 男
状态 离线
狂晕一点儿看不懂!
8 发表于 2007-02-02 06:37 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
if !num! equ 2 set var=%%i
if !num! equ 2 set var1=!var:~0,4!
if !num! equ 2 set var2=!var:~5!
if !num! equ 2 set str=!var1!A!var2!
echo !str! >> x:\_1.ini
这些地方看不懂?
9 发表于 2007-02-03 00:46 ·  中国 内蒙古 阿拉善盟 电信
初级用户
积分 80
发帖 28
注册 2007-02-01 22:08
19年会员
UID 78341
性别 男
状态 离线
狂晕一点儿看不懂!
10 发表于 2007-02-04 00:59 ·  中国 山西 太原 电信
初级用户
积分 56
发帖 22
注册 2006-12-13 10:54
19年会员
UID 73399
性别 男
状态 离线
大哥,不对吧,你只把第二行导出来了,那么其它行呢》?》?
11 发表于 2007-02-04 01:05 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
我能看懂了!哈~~
论坛跳转: