Powershell <;位置>;:缺少';)';在方法调用中。-动力壳

Powershell <;位置>;:缺少';)';在方法调用中。-动力壳,powershell,powershell-2.0,Powershell,Powershell 2.0,我试图重新使用我在网上找到的一个函数来删除字符串中的特殊字符,以便可以将其用作exchange中的别名,但我遇到了上述错误 我似乎找不到这个错误在抱怨什么。以下是函数: Function Convert-ToFriendlyName{ param ($Text) # Unwanted characters (includes spaces and '-') converted to a regex: $SpecChars = '!', '"', '£', '$', '%', '&', '

我试图重新使用我在网上找到的一个函数来删除字符串中的特殊字符,以便可以将其用作exchange中的别名,但我遇到了上述错误

我似乎找不到这个错误在抱怨什么。以下是函数:

Function Convert-ToFriendlyName{
param ($Text)
# Unwanted characters (includes spaces and '-') converted to a regex:
$SpecChars = '!', '"', '£', '$', '%', '&', '^', '*', '(', ')', '@', '=', '+', '¬', '`', '\', '<', '>', '.', '?',     '/', ':', ';', '#', '~', "'", '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', ' '
$remspecchars = [string]::join('|', ($SpecChars | % {[regex]::escape($_)}))
# Convert the text given to correct naming format (Uppercase)
$name = (Get-Culture).textinfo.totitlecase(“$Text”.tolower())
# Remove unwanted characters
$name = $name -replace $remspecchars, ""
$name
}
函数转换为Friendlyname{
参数($Text)
#转换为正则表达式的不需要的字符(包括空格和“-”):
$SpecChars=“!”、“、”、“/”、“%”、“&”、“^”、“*”、“(”、“)、“@”、“=”、“+”、“、”、“、”、“、”、“、”、“、”、“/”、“:”、“、”、“、”、“、“、”、“、“、”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“9”、“-”、“、”
$remspecchars=[string]::join('|',($SpecChars |%{[regex]::escape($|)}))
#将给定的文本转换为正确的命名格式(大写)
$name=(获取区域性).textinfo.totitlecase($Text.tolower())
#删除不需要的字符
$name=$name-替换$remspecchars“
$name
}
想法?如有任何见解,将不胜感激


谢谢,

谢谢大家的输入。问题变得非常基本,一旦我删除了$Text周围的双引号并用单引号替换,一切都很好!DOH!–user2735454刚刚编辑对我有用。你在给它添加什么?这很奇怪。当我注释它时,脚本运行良好…我还没有给它添加任何内容,现在只是将函数添加到脚本中。我很确定问题出在这一行:$name=(获取区域性)。textinfo.totitlecase($Text.tolower())-但是当我手动运行时,没问题??听起来问题不在于函数本身,而在于插入到脚本中。如果将其插入到脚本的顶部,是否确定没有将其插入到参数块的尾部(在最后一次关闭参数之前)?是的,事实上,我刚刚用这个函数创建了一个全新的ps1文件,我仍然得到相同的错误。。。