【发布时间】:2015-12-08 19:50:09
【问题描述】:
我正在尝试进一步使用我在尝试replace text at a specified line 时发现的一段精彩代码。
但是试图让它读取$_.Substring() 然后使用$_ -replace 给我带来了麻烦;虽然我没有收到错误消息,但文本没有被替换。
下面是不起作用的代码:
$content = Get-Content Z:\project\folder\subfolder\newindex2.html
$content |
ForEach-Object {
if ($_.ReadCount -ge 169 -and $_.ReadCount -le 171) {
$a = $_.Substring(40,57)
$linked = '<a href="http://tempsite.info/folder1/folder2/' + $a + '">' + $a + '</a>'
$_ -replace $a,$linked
} else {
$_
}
} |
Set-Content Z:\project\folder\subfolder\newindex2.html
重点是让 html 表格列中的单元格内容链接到网络服务器上与单元格中的内容同名的文件。
我在尝试匹配文件名的正则表达式时没有任何运气,但由于我设法做到了,所以要替换的文本总是以相同的位置结束,我想我会尝试定位代替。 要替换的文本总是 57 个字符长并且总是从位置 40 开始。
我查看了变量设置,一切都设置正确,除了
$_ -replace $a,$linked
不替换任何东西。 相反,整个文件只是被重新写入,没有任何改变。谁能指出我所缺少的和/或指出如何更容易地达到结果?也许我使用了错误的子字符串,应该使用其他东西?
【问题讨论】:
-
$a长什么样子?它在字符串中是否有特殊的正则表达式字符。这将阻止您正在寻找的匹配。我想先从示例文件中查看这 3 行的样子。 -
另外,如果您已经知道要替换的内容,您甚至根本不需要正则表达式。我需要先看到 $a 我想我才能回答
标签: powershell replace substring