感谢指点!请问如果要保留文件里其它内容,只是删除这一行呢?
假设你要处理的文本有5行,仅仅第一行要替换,
### 友情提示:本脚本由 Au3.REHelper 于 2020/01/30 12:17 自动生成,不保证其正确性,请自行测试 ###
Local $sSource = _
'password 51:b:01000000D08C9DDF0115D1118C7A00C' & @CRLF & _
'line2' & @CRLF & _
'3' & @CRLF & _
'4' & @CRLF & _
'5' & @CRLF
;~MsgBox(0, '源字符串', $sSource)
$password = '12345678'
Local $sSRERe = StringRegExpReplace($sSource, '(?i)(^.*51:b:)(.*)', '${1}' & $password)
MsgBox(0, '替换结果', $sSRERe)
本帖最后由 floor6ggg 于 2020-1-30 12:33 编辑
fileread和fileopen的应该是这样写了:注意:如果是多行内容的话,(?is),中的s需要去除,因为:(?s)(?#让.可匹配任意字符含换行),所以仅仅替换第一行内容的话,需要去除s
$sSource=FileRead(@desktopDir&"\default.rdp");假设存放路径在桌面;替换文件中的password 51:b:后的内容
MsgBox(262144, '原文内容', $sSource)
$file=FileOpen(@desktopDir&"\default.rdp", FileGetEncoding(@desktopDir&"\default.rdp") + 2);2 = 写入模式(先删除之前的内容)
$password = '12345678'
;~ Local $sSRERe = StringRegExpReplace($sSource, '(?is)(^.*51:b:)(.*)', '${1}' & $password)
Local $sSRERe = StringRegExpReplace($sSource, '(?i)(^.*51:b:)(.*)', '${1}' & $password)
MsgBox(262144, '更改结果', $sSRERe)
FileWrite($file,$sSRERe)
FileClose($file)
floor6ggg 发表于 2020-1-30 12:30
fileread和fileopen的应该是这样写了:注意:如果是多行内容的话,(?is),中的s需要去除,因为:
谢谢!刚用了您这段代码,好象并没有将文件中的那行内容删除,而且文件内容好象没有任何变化 。 。。晕,沟通没到位。。。。看来要深入沟通。。。。
1.上传个数学源文件,
2.写明你要的效果,颜色标明一下,。。。
看能否一歩到位搞定。。。。。 感谢指点!
defaultRDP文件的内容大致如下
devicestoredirect:s:*
drivestoredirect:s:*
password 51:b:12345678password 51:b:12345678
desktopwidth:i:1224
desktopheight:i:773 本帖最后由 floor6ggg 于 2020-2-1 19:42 编辑
anythinging 发表于 2020-2-1 19:13
感谢指点!
defaultRDP文件的内容大致如下
devicestoredirect:s:*
预想的要达到的效果大概是怎么样的…… ?还是之前提到的,仅是第一行替换?
即:
devicestoredirect:s:*
drivestoredirect:s:*
password 51:b:12345678password 51:b:12345678
desktopwidth:i:1224
desktopheight:i:773
只是第一行红色的部分需要替换?如果是的话,代码如下请测试:### 友情提示:本脚本由 Au3.REHelper 于 2020/02/01 19:39自动生成,不保证其正确性,请自行测试
Local $sSource = _
'devicestoredirect:s:*' & @CRLF & _
'drivestoredirect:s:*' & @CRLF & _
'password 51:b:12345678password 51:b:12345678' & @CRLF & _
'desktopwidth:i:1224' & @CRLF & _
'desktopheight:i:773'
$password = '12345678'
Local $sSRERe = StringRegExpReplace($sSource, '(?i)(^devicestoredirect:s:)(.*)', '${1}'&$password)
MsgBox(0, '更改结果', $sSRERe)
floor6ggg 发表于 2020-2-1 19:32
预想的要达到的效果大概是怎么样的…… ?还是之前提到的,仅是第一行替换?
即:
谢谢!
现在password 51:b:12345678这行,password 51:b:后面的内容根据前面的代码已经会替换了,想问下,如何 能删除password 51:b:12345678这行,同时保留其它行的内容。 anythinging 发表于 2020-2-1 19:46
谢谢!
现在password 51:b:12345678这行,password 51:b:后面的内容根据前面的代码已经会替换了,想问下 ...
devicestoredirect:s:*
drivestoredirect:s:*
password 51:b:12345678password 51:b:12345678
desktopwidth:i:1224
desktopheight:i:773
红色部分删除,需要保留第三行的空行?即仍为5行
devicestoredirect:s:*
drivestoredirect:s:*
desktopwidth:i:1224
desktopheight:i:773
还是:仅4行?
devicestoredirect:s:*
drivestoredirect:s:*
desktopwidth:i:1224
desktopheight:i:773
仍为5行的写法:
devicestoredirect:s:*
drivestoredirect:s:*
desktopwidth:i:1224
desktopheight:i:773
Local $sSource = _
'devicestoredirect:s:*' & @CRLF & _
'drivestoredirect:s:*' & @CRLF & _
'password 51:b:12345678password 51:b:12345678' & @CRLF & _
'desktopwidth:i:1224' & @CRLF & _
'desktopheight:i:773'
$password = '12345678'
Local $sSRERe = StringRegExpReplace($sSource, 'password.*', '')
MsgBox(0, '更改结果', $sSRERe)
floor6ggg 发表于 2020-2-1 19:57
devicestoredirect:s:*
drivestoredirect:s:*
password 51:b:12345678password 51:b:12345678
谢谢,就是把这行password 51:b:12345678password 51:b:12345678
删除 anythinging 发表于 2020-2-1 20:09
谢谢,就是把这行password 51:b:12345678password 51:b:12345678
删除
仅4行的写法,把回车符和换行符加上即可
Local $sSource = _
'devicestoredirect:s:*' & @CRLF & _
'drivestoredirect:s:*' & @CRLF & _
'password 51:b:12345678password 51:b:12345678' & @CRLF & _
'desktopwidth:i:1224' & @CRLF & _
'desktopheight:i:773'
$password = '12345678'
Local $sSRERe = StringRegExpReplace($sSource, 'password.*\r\n', '')
MsgBox(0, '更改结果', $sSRERe)
Local $sSRERe = StringRegExpReplace($sSource, 'password.*\v+', '')
Local $sSRERe = StringRegExpReplace($sSource, 'password.*\v{2}', '')
都可以,自己看着调整吧
页:
1
[2]