基本上,我试图找到一种方法来将变量替换为Powershell中的一行。
当前脚本:
$switches = get-outlookinbox | where subject -eq "Hello"
$e = $switches.body
$e = $e.replace("Hello:","")
$e = $e.replace(" Number","")
$e = $e.replace(":1","")
$e = $e.replace(":2","")
$e = $e.replace(":3","")
$e = $e.replace(":4","")
$e = $e.replace(":99","")
您可以在这里看到我要做什么...但是我不希望有99行替换代码,对此有什么想法吗?
另外,数字必须在其前面带有:,否则替换将损坏文件,因为它仅包含IP和端口,这是我要从输出中删除的端口。
最佳答案
您可以使用简单的 foreach
loop并从99
迭代到1
:
foreach ($n in 99..1)
{
$e = $e.Replace(":$n", " ")
}
或者,如果您更喜欢一行:
foreach ($n in 99..1) { $e = $e.Replace(":$n", " ") }
演示:
PS > $mystr = "a:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20b"
PS > foreach ($n in 20..1) { $mystr = $mystr.replace(":$n", "") }
PS > $mystr
ab
PS >
关于powershell - Powershell替换功能-用数字替换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808918/