在Powershell 5中,解析字符串的正斜杠和反斜杠的最佳方法是什么
我接受ServerName和Share脚本文件的参数。我希望确保用户不会添加任何前导或尾随的前斜杠或反斜杠 目前,我正在做这个在Powershell 5中,解析字符串的正斜杠和反斜杠的最佳方法是什么,powershell,powershell-4.0,Powershell,Powershell 4.0,我接受ServerName和Share脚本文件的参数。我希望确保用户不会添加任何前导或尾随的前斜杠或反斜杠 目前,我正在做这个 function validateServerShare($a_server, $a_share) { $a_server = $a_server -replace'\\','' $a_server = $a_server -replace'/','' $a_share = $a_share -replace'\\','' $a_sha
function validateServerShare($a_server, $a_share)
{
$a_server = $a_server -replace'\\',''
$a_server = $a_server -replace'/',''
$a_share = $a_share -replace'\\',''
$a_share = $a_share -replace'/',''
$Path = "\\$a_server\$a_share"
if(-not (Test-Path $Path))
{
haltError
}
return $Path
}
但是我不喜欢我有多条替换线的方式。是否有更干净或更简单的方法从字符串中去除前斜杠和后斜杠(如果存在)
提前感谢您提供的任何帮助。您可以链接您的
-替换呼叫:
$a_server = $a_server -replace '\\','' -replace '/',''
或者使用字符类来匹配以下两个字符:
$a_server = $a_server -replace '[\\/]',''
您可以链接您的-replace
调用:
$a_server = $a_server -replace '\\','' -replace '/',''
或者使用字符类来匹配以下两个字符:
$a_server = $a_server -replace '[\\/]',''
过去,输入正则表达式以在变量中保存要替换的条件,然后替换该条件的每次出现:
$a_server = "\\\sql2016\"
$a_share = "\temp\"
$criteria = "(/|\\*)" --criteria you want to replace
$a_server = ($a_server -replace $criteria,'')
$a_share = ($a_share -replace $criteria,'')
$Path = "\\$a_server\$a_share"
## $path is now \\sql2016\temp
过去,输入正则表达式以在变量中保存要替换的条件,然后替换该条件的每次出现:
$a_server = "\\\sql2016\"
$a_share = "\temp\"
$criteria = "(/|\\*)" --criteria you want to replace
$a_server = ($a_server -replace $criteria,'')
$a_share = ($a_share -replace $criteria,'')
$Path = "\\$a_server\$a_share"
## $path is now \\sql2016\temp
你有没有看过解析路径
?在帖子中你说的是“前导或尾随”斜杠,但在代码中你删除了任何斜杠,而不管位置是哪个?。Trim(“\/”)
将删除字符串两端的前斜杠和后斜杠,而不是中间。你有没有看过解析路径
?在帖子中你说的是“前导或尾随”斜杠,但在代码中你删除了任何斜杠,而不管位置是哪一个?。Trim(“\/”)
将删除字符串两端的前斜杠和后斜杠,而不是中间。我最终使用这个解决方案,但我给@Mathias R Jessen一个+1作为另一个好的解决方案。我最终使用这个解决方案,但给@Mathias R Jessen一个+1作为另一个好的解决方案