Nsis 如何在txt文件中搜索字符串?
是否有某种方法可以在Nsis 如何在txt文件中搜索字符串?,nsis,Nsis,是否有某种方法可以在example.txt文件中搜索字符串example 我尝试了Fileread和Fileseek,但它还不起作用。。。稍后我想写入文件,这就是为什么我使用带有aappend属性的FileOpen: FileOpen $4 "$SYSDIR\drivers\etc\hosts" a FileSeek $4 0 SET FileRead $4 $1 ${If} $1 != "example" Strcmp $1 "example" end 0 或者我可以在的同时使用浏览文件吗?
example.txt
文件中搜索字符串example
我尝试了Fileread
和Fileseek
,但它还不起作用。。。稍后我想写入文件,这就是为什么我使用带有a
append属性的FileOpen
:
FileOpen $4 "$SYSDIR\drivers\etc\hosts" a
FileSeek $4 0 SET
FileRead $4 $1
${If} $1 != "example"
Strcmp $1 "example" end 0
或者我可以在的同时使用浏览文件吗?但是文件什么时候结束
更新
现在它可以工作了,但是有没有办法不写30.0.0.0调度器
,这样就不会写整行了。。。例如,NSIS wiki中的dispatcher
word?包含了以下几个示例:
- 2个示例,用于在文件或注释中进行搜索,定义基于
StrCmp
- 另一个例子是在一个文件中,而另一个例子是
您可以在这些示例的基础上完成自己的工作。在问题中显示代码有两种方法:将块代码缩进至少4个空格或1个表格,或者使用专用的回引号。我同意替换文本是最简单的方法。
!define IP_AND_DISPATCHER "30.0.0.0 dispatcher"
FileOpen $0 "$SYSDIR\drivers\etc\hosts" a
loop:
FileRead $0 $2
IfErrors done
Messagebox MB_OK "$2"
StrCmp $2 "${IP_AND_DISPATCHER}$\r$\n" 0 loop
MessageBox MB_OK "$${IP_AND_DISPATCHER} found"
FileClose $2 ;close file
Quit
done:
FileSeek $0 0 END
FileWrite $0 "$\r$\n" ; new line
FileWrite $0 "${IP_AND_DISPATCHER}" ;write ip and dispatcher
FileWrite $0 "$\r$\n" ; extra line
FileClose $0 ;close file