当前位置:  开发笔记 > 编程语言 > 正文

如何在PowerShell函数中替换字符串?

如何解决《如何在PowerShell函数中替换字符串?》经验,为你挑选了3个好方法。



1> Steven Muraw..:

这里的概念是正确的.

问题在于您选择的变量名称.$ input是PowerShell用来表示管道输入数组的保留变量.如果更改变量名称,则不应该有任何问题.

PowerShell确实有一个替换运算符,因此您可以将函数转换为

function CleanUrl($url)
{
    return $url -replace 'http://'
}



2> Jaykul..:

史蒂夫的回答有效.尝试重现ESV脚本的问题在于您正在使用$input,这是一个保留变量(它会自动将多个管道输入收集到一个变量中).

但是,您应该使用.Replace(),除非您需要-replace的额外功能(它处理正则表达式等).

function CleanUrl([string]$url)
{
    $url.Replace("http://","")
}

这会奏效,但也会这样:

function CleanUrl([string]$url)
{
    $url -replace "http://",""
}

此外,在调用PowerShell函数时,请勿使用括号:

$HostHeader = "http://google.com"
$SiteName = CleanUrl $HostHeader
Write-Host $SiteName

希望有所帮助.顺便说一下,要证明$ input:

function CleanUrls
{
    $input -replace "http://",""
}

# Notice these are arrays ...
$HostHeaders = @("http://google.com","http://stackoverflow.com")
$SiteNames = $HostHeader | CleanUrls
Write-Output $SiteNames



3> ESV..:
function CleanUrl([string] $url)
{
    return $url.Replace("http://", "")
}

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有