Board logo

标题: 修改1.ini的第2行第5个字为A.bat [打印本页]

作者: a9319751     时间: 2006-12-10 01:25    标题: 修改1.ini的第2行第5个字为A.bat

@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 ]
作者: HUNRYBECKY     时间: 2006-12-10 04:11
正需要这个。支持。
作者: lxmxn     时间: 2006-12-10 07:35

  巧妙利用字符截取来达到目的,漂亮。

作者: vkill     时间: 2006-12-10 07:56
呵呵,还是喜欢set num=%%i&set %%i=%%j
作者: 3742668     时间: 2006-12-10 13:02


  Quote:
『第 4 楼』:  

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

不错,set num=%%i & set "%%i=%%j"的确是最灵活的方法。
若是追求理论上的效率,不妨结合几种方法来实现:
CODE:  [Copy to clipboard]
@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

作者: lxmxn     时间: 2006-12-10 13:46

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

  加分~

作者: beeny     时间: 2007-2-2 06:01
狂晕一点儿看不懂!
作者: anqing     时间: 2007-2-2 06:37
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
这些地方看不懂?
作者: nmjxg     时间: 2007-2-3 00:46
狂晕一点儿看不懂!
作者: fbwolf     时间: 2007-2-4 00:59
大哥,不对吧,你只把第二行导出来了,那么其它行呢》?》?
作者: anqing     时间: 2007-2-4 01:05
我能看懂了!哈~~




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5