Стив ответ работает. Проблема с вашей попыткой воспроизвести сценарий 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