INF文件在批处理中的应用
来源:互联网 发布:apache common实现orm 编辑:程序博客网 时间:2024/05/29 06:57
**学习INF这么久,一直想做个人性化点的教程。
今天就试着写写吧~
这里出现的代码都是批处理不容易实现或者直接实现不了的~
大众化功能的代码就不贴了~**
不过我估计大家也懒得学INF了。
所以就帮大家封装成了函数块!
放在批处理末尾直接调用即可~
操作WINDOWS文件夹什么的需要管理员权限,请自行用VBS提权,代码这里就不贴了~
函数块1:刷新系统
GOTO :Eof:Refreshif Not Exist %TMP%\TMP.INF ((Echo [Version]Echo Signature=$Chicago$Echo Provider=老刘Echo [DefaultInstall])>%TMP%\TMP.INF)RUNDLL32 SETUPAPI.DLL,InstallHinfSection ^DefaultInstall 128 %TMP%\TMP.INF
使用方法:
Call :Refresh
——————————————————————————————
函数块2:强力删除C盘文件
如果要搞系统文件夹的话……你懂得,需要管理猿相助
独立版地址:去看看
函数版:
GOTO :Eof:DeleteCPUSHD %tmp%IF Not Exist tmmp.inf (>tmmp.inf ( echo [Version] echo Signature=$Chicago$ echo Provider=老刘 echo [DefaultInstall] echo delfiles=a echo [a]))set "aa=%~1"for %%a in ("%aa%") do ^if exist "c:%%~pnxa" ^echo ..\..%%~pnxa,,,1>tmp.inf(type tmmp.inf&type tmp.inf)>temp.infRunDll32.exe advpack.dll,LaunchINFSection .\temp.inf,DefaultInstallPOPD
用法:
For /F “Tokens=*” %%a in (‘Dir /b /a-d %tmp%’) do Call :DeleteC “%%~fa”
——————————————————————————————
函数块3:直接创建&修改&删除Ini条目
这个可以说是INF的众多功能中实用性最高的,设计最人性化的功能
关联贴:去看看
不废话,上函数块:
GOTO :Eof:EditIni@Echo offPushd %Tmp%(For %%a in ("[Version]""Signature=$Chicago$""[DefaultInstall]""UpdateInis=2333""[2333]") Do Echo %%~a)>.\inftmp.InfEcho "%~1","%~2",%~3 >>.\inftmp.InfRUNDLL32 SETUPAPI.DLL,InstallHinfSection ^DefaultInstall 128 .\inftmp.INFPopd
使用方法: Call :Editini “ini-file” “ini-section” “[old-ini-entry], [new-ini-entry], [flags]”
.
.
ini-file
包含要更改条目的 .ini 绝对路径。
ini-section
包含要更改条目的节名。
old-ini-entry
可选。常用形式为 Key=Value。
new-ini-entry
可选。常用形式为 Key=Value。关键字或值都可以指定可替代字符串。
flags
可选操作标记。可以是下列值之一:
0 默认。如果在 .inf 文件条目中有 old-ini-entry 关键字,则用 new-ini-entry 替换该条目。注意 old-ini-entry 参数关键字与 .inf 文件条目必须匹配;每个条目的值都将忽略。
要无条件地将 new-ini-entry 添加到 .ini 文件中,请将 old-ini-entry 设置为 NULL。要无条件地从 .inf 文件中删除 old-ini-entry,请将 new-ini-entry 设置为 NULL。
1 如果 .inf 文件条目中有 old-ini-entry 的关键字和值,则用 new-ini-entry 替换该条目。请注意 old-ini-entry 参数和 .inf 文件条目的关键字和值必须匹配才能进行替换。作为对比,使用操作标志值为 0,只有关键字与它匹配才能进行替换。
2 如果在 .inf 文件中不存在 old-ini-entry 参数关键字,那么在 .ini 文件中不执行任何操作。
如果在 .inf 文件条目中存在 old-ini-entry 参数关键字以及 .ini 文件条目中存在 new-ini-entry 参数关键字,则会删除与 new-ini-entry 参数关键字匹配的 .inf 文件条目,并且按以下方法操作与 old-ini-entry 参数匹配的 .inf 文件条目:用 new-ini-entry 参数关键字替换 .inf 文件条目关键字。
如果在 .inf 文件中有 old-ini-entry 参数关键字,并且在 .ini 文件中没有 new-ini-entry 参数关键字,那么将条目添加到由 new-ini-entry 参数关键字和旧值组成的 .inf 文件中。
请注意 old-ini-entry 参数和 .ini 文件条目是否匹配取决基于关键字本身,而不是关键字和值。
3 除 old-ini-entry 参数和 .inf 文件中条目是否匹配取决基于关键字和值,而不但是关键字外,其他方面与上面列出的标志参数值 2 一样。
指定关键字和值时可以使用星号 (*) 通配符,系统能正确地解释此符号。
**另:多次操作文件不建议使用函数块,可以自行修改源码
一个INF处理全部文件可以提高效率并减少磁盘I/O读写次数和碎片数**
—————————————————————————————
实例:
@echo off
Call :Editini “%~dp0Test.ini” Path “,SystemPath=%HOMEDRIVE%”
%Path节中添加键值%
Call :Editini “%~dp0Test.ini” Path “我是来凑数的~~~=我是随意字符串”
%Path节中删除键值%
Call :Editini “%~dp0Test.ini” Path “userPath=,userPath=%USERPROFILE%”
%强制更改Path节中的UserPath键值%
Call :Editini “%~dp0Test.ini” “Others Thing” “作者=不知道,作者=老刘~,2”
%嘿嘿,如果“不知道”作者,将“不知道”替换为”老刘~“,否则不执行操作%
Call :Editini “%~dp0Test.ini” “嘿嘿嘿” “s1=”
%清除嘿嘿嘿节的注释,前提是被包裹在项和节之间%
Start %~dp0Test.ini
GOTO :Eof
:EditIni
@Echo off
Pushd %Tmp%
(For %%a in (
“[Version]”
“Signature=$Chicago$”
“[DefaultInstall]”
“UpdateInis=2333”
“[2333]”
) Do Echo %%~a)>.\inftmp.Inf
Echo “%~1”,”%~2”,%~3 >>.\inftmp.Inf
RUNDLL32 SETUPAPI.DLL,InstallHinfSection ^
DefaultInstall 128 .\inftmp.INF
Popd
Test.INI(与批处理在同一目录):
[Path]winPath=C:\windowsuserPath=sx我是来凑数的~~~=2333[Others Thing]作者=不知道[嘿嘿嘿];;‘我是注释1号~~~~~s~~~~~~~d~~~~~~~~~~~~~~~~~~s~~~~~;;‘我是注释2号~~d~~~~~~~~~~~~~~~w~~~~~~~~~s~~~~~~~~~;;‘我是注释3号~w~~~~~~~~~~~~~~~~~~~~~~~~~~z~~~s~~~~~;;‘我是注释4号~~~~~~~~~a~~~~~~~~~~~~a~~~~~~z~~~~~~~~;;‘我是注释5号~~~~~~~~~~~~~~~s~~~~~~~~~~w~~~z~~~~~~~;;‘我是注释6号~~~~~~~~~~w~~~~~s~~~~~~~~~~~~~~~~~~s~~;;‘我是注释7号~~~~~~x~~~~~~~~~~~~~~~~s~~~~~~~~~~~s~~s1=
- INF文件在批处理中的应用
- INF文件中的HKR
- INF文件中的HKR
- 批处理命令在Windows操作中的典型应用
- 电子书下载:批处理命令在WINDOWS操作中的典型应用
- Windows驱动中的inf文件
- 项目中的java文件没有在WEB-INF\classes中生成class文件
- j2ee项目里src中的java文件没有在WEB-INF中生成class文件
- 在 action 的 java 里面获得应用 WEB-INF 下面的文件的路径方法
- tomcat 在META-INF 文件夹中添加context.xml,使项目自动应用更新文件
- 将不在pom文件中的jar包打包WEB-INF/lib目录下
- 在tomcat运行找不到xml,class ,项目中的java文件没有在WEB-INF\classes中生成class文件
- 如何删除系统中的 .inf 文件
- 文件夹中的autorun.inf文件怎么删除
- cab包中的的inf文件编写
- 访问WEB-INF目录中的JSP文件
- 访问WEB-INF目录中的文件
- 访问WEB-INF目录中的JSP文件
- jQuery选择器
- B. Fence----前缀和
- mysql-5.6安装+Percona 监控
- 重放攻击(Replay Attacks)[转载]
- linux 内核修炼之道——系统调用
- INF文件在批处理中的应用
- LeNet-5模型详解及其TensorFlow代码实现
- 部分总结
- spring拦截器
- Angular 基础部分 1.2 创建投票网站
- 防火墙状态
- 使用git报错error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out
- 169/229 Majority Element(寻找众数)
- 细数二十世纪最伟大的10大算法