Board logo

标题: [文本处理] 批处理删除ini文本指定第几行外的所有内容怎么写呀 [打印本页]

作者: ydm566    时间: 2012-3-16 01:44     标题: 批处理删除ini文本指定第几行外的所有内容怎么写呀

本帖最后由 ydm566 于 2012-3-16 03:38 编辑

删除当前目录1.ini文本里指定的几行内容以外的所有内容
asdsasd666
adwes444
adwfffgg66
adsdwfsdf
wqdsaf222
qwgdsfffdf
ghgfjghjhj
fdgfdgfdgfd
保留前三行,删除第三行以为的所有内容
作者: ivor    时间: 2012-3-16 03:00

本帖最后由 ivor 于 2012-3-16 12:33 编辑
  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.ini) do (
  3. echo %%a & set /aa+=1
  4. if !a! equ 3 pause&exit
  5. )
复制代码

作者: ydm566    时间: 2012-3-16 03:12

楼上的这段不行呀,没反应
作者: 545810831    时间: 2012-3-16 06:06

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.ini) do (
  3. set /a m+=1
  4. if !m! leq 3 echo %%i
  5. )
  6. pause
复制代码

作者: ydm566    时间: 2012-3-16 13:03

还是不行呀,麻烦大侠测试下再发呀
作者: apang    时间: 2012-3-16 13:57

还是不行呀,麻烦大侠测试下再发呀
ydm566 发表于 2012-3-16 13:03


2楼和4楼的代码可以呀。
要输出到文件,你自己加重定向就行了。
作者: ydm566    时间: 2012-3-16 14:02

不要输出,我的意思就是删除ini里的指定几行以外的所有内容
作者: ydm566    时间: 2012-3-16 14:51

我只要删除当前文件夹里面INI指定几行以外的内容,有很多文件夹,如果输出的话,很麻烦。最好是能直接修改
作者: find    时间: 2012-3-16 18:54

回复 3# ydm566
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (1.ini) do (
  4.     echo,%%a
  5.     set /a n+=1
  6.     if !n! equ 3 (
  7.         goto :eof
  8.     )
  9. ))>1.ini.new
  10. move /y 1.ini.new 1.ini
复制代码

作者: ydm566    时间: 2012-3-16 20:39

谢谢9楼的朋友,这个可以
作者: find    时间: 2012-3-16 20:44

  1. sed -i "4,$d" 1.ini
复制代码





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