标题: [文本处理] 批处理如何对上级目录的一个指定ini文本进行查找特定行、替换字符串和插入行内容操作 [打印本页]
作者: jyc19970330 时间: 2011-8-2 13:51 标题: 批处理如何对上级目录的一个指定ini文本进行查找特定行、替换字符串和插入行内容操作
本帖最后由 pcl_test 于 2016-9-8 11:09 编辑
假设一个批处理的上级目录有一个1.ini文件
格式如下
[AAA]
真=false
[BBB]
真=false
[CCC]
真=false
[DDD]
真=false
当然可能还有好多
使用批处理如何读入该文件并且搜索到[CCC],并且将[CCC]下改成"真=True',然后在"真=True"下面加入"路径=(当前目录)"
更改后就像这样
[AAA]
真=false
[BBB]
真=false
[CCC]
真=True
路径=C:\Windows
[DDD]
真=false
顺便问下,怎样进行逆操作(就是读入该文件并且搜索到[CCC],并且将[CCC]下改成"真=True',然后在下面删除"路径=(当前目录)")
望各位指教下
作者: tmplinshi 时间: 2011-8-2 14:19
本帖最后由 tmplinshi 于 2011-8-2 15:28 编辑
- nircmdc inisetval "..\1.ini" "CCC" "真" "True~n路径=%cd%"
复制代码
逆操作:- nircmdc inisetval "..\1.ini" "CCC" "真" "false"
- nircmdc inidelval "..\1.ini" "CCC" "路径"
复制代码
http://nirsoft.net/utils/nircmd.zip
作者: jyc19970330 时间: 2011-8-2 14:54
回复 2# tmplinshi
正向操作貌似无效啊
作者: tmplinshi 时间: 2011-8-2 15:27
本帖最后由 tmplinshi 于 2011-8-2 15:28 编辑
写错了,应该是 "..\1.ini"
作者: jyc19970330 时间: 2011-8-2 15:34
回复 4# tmplinshi
提示
'nircmdc' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
作者: tmplinshi 时间: 2011-8-2 15:47
http://nirsoft.net/utils/nircmd.zip
作者: jyc19970330 时间: 2011-8-2 16:01
回复 6# tmplinshi
能不能不要安装这个就完成呢
作者: tmplinshi 时间: 2011-8-2 17:45
修改:- @echo off
-
- setlocal disabledelayedexpansion
-
- set file="..\1.ini"
-
- set []=#
- set #clear=#
- for /f "delims=" %%a in ('findstr /n .* %file%') do (
- if defined #clear set "#clear=" >%file%
- set var=%%a$
- setlocal enabledelayedexpansion
- set var=!var:*:=!
- (
- if /i "![]!!var:~0,2!" == "[CCC]真=" (
- echo 真=True
- echo 路径=!cd!
- ) else (
- echo,!var:~0,-1!
- if "!var:~0,1!!var:~-2,-1!" == "[]" (
- for %%a in ("!var:~0,-1!") do (
- endlocal
- set []=%%~a
- )
- ) else (
- endlocal
- )
- )
- ) >>%file%
- )
-
- pause
复制代码
还原:- @echo off
-
- setlocal disabledelayedexpansion
-
- set file="..\1.ini"
-
- set []=#
- set #clear=#
- for /f "delims=" %%a in ('findstr /n .* %file%') do (
- if defined #clear set "#clear=" >%file%
- set var=%%a$
- setlocal enabledelayedexpansion
- set var=!var:*:=!
- (
- if /i "![]!!var:~0,2!" == "[CCC]真=" (
- echo 真=false
- ) else (
- if /i "!![]!!var:~0,3!" neq "[CCC]路径=" (
- echo,!var:~0,-1!
- if "!var:~0,1!!var:~-2,-1!" == "[]" (
- for %%a in ("!var:~0,-1!") do (
- endlocal
- set []=%%~a
- )
- ) else (
- endlocal
- )
- )
- )
- ) >>%file%
- )
-
- pause
复制代码
作者: jyc19970330 时间: 2011-8-2 19:19
回复 8# tmplinshi
多谢,已成功
作者: jyc19970330 时间: 2011-8-2 21:06
回复 8# tmplinshi
要是再增加一个“文件=Xxx”(包括删除)
作者: tmplinshi 时间: 2011-8-2 21:16
回复 10# jyc19970330
添加:- @echo off
-
- setlocal disabledelayedexpansion
-
- set file="..\1.ini"
-
- set []=#
- set #clear=#
- for /f "delims=" %%a in ('findstr /n .* %file%') do (
- if defined #clear set "#clear=" >%file%
- set var=%%a$
- setlocal enabledelayedexpansion
- set var=!var:*:=!
- (
- if /i "![]!!var:~0,2!" == "[CCC]真=" (
- echo 真=True
- echo 路径=!cd!
- echo 文件=Xxx
- ) else (
- echo,!var:~0,-1!
- if "!var:~0,1!!var:~-2,-1!" == "[]" (
- for %%a in ("!var:~0,-1!") do (
- endlocal
- set []=%%~a
- )
- ) else (
- endlocal
- )
- )
- ) >>%file%
- )
-
- pause
复制代码
删除:- @echo off
-
- setlocal disabledelayedexpansion
-
- set file="..\1.ini"
-
- set []=#
- set #clear=#
- for /f "delims=" %%a in ('findstr /n .* %file%') do (
- if defined #clear set "#clear=" >%file%
- set var=%%a$
- setlocal enabledelayedexpansion
- set var=!var:*:=!
- (
- if /i "![]!!var:~0,2!" == "[CCC]真=" (
- echo 真=false
- ) else (
- if /i "!![]!!var:~0,3!" neq "[CCC]路径=" (
- if /i "!![]!!var:~0,3!" neq "[CCC]文件=" (
- echo,!var:~0,-1!
- if "!var:~0,1!!var:~-2,-1!" == "[]" (
- for %%a in ("!var:~0,-1!") do (
- endlocal
- set []=%%~a
- )
- ) else (
- endlocal
- )
- )
- )
- )
- ) >>%file%
- )
-
- pause
复制代码
作者: jyc19970330 时间: 2011-8-3 13:14
回复 11# tmplinshi
感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |