Param(
[alias("sp")]
[string]$script_path,
[alias("a")]
[string]$args,
[alias("u")]
[string]$user_name,
[alias("p")]
[string]$password,
[alias("h")]
[string]$host_name
)
$pass = convertto-securestring $password -asplaintext -force
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user_name,$pass
if ($args -ne "")
{
$script_path += $args
}
invoke-command -credential $mycred -computername $host_name -filepath $script_path
我使用此脚本远程执行$ script_path上的其他脚本定位并尝试将args字符串传递为
-a "-n:10 -r:'".*?.'" -l:'"blabla string with spaces'""
但这不是好结果。 首先,PowerShell获取正则表达式模式参数的错误? 我如何在param字符串中传递正则表达式模式? 其次,powershell在substring中得到错误包含char“ - ”。你能救我吗?
答案 0 :(得分:0)
您使用反向标记来转义双引号,而不是使用单引号:
-a "-n:10 -r:`".*?.`" -l:`"blabla string with spaces`""