1
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 得到正则表达式模式参数的错误?我如何在参数字符串中传递正则表达式模式?其次,powershell get error in substring contains char "-"。你能帮助我吗?

4

1 回答 1

0

你用反引号转义双引号,而不是用单引号:

-a "-n:10 -r:`".*?.`" -l:`"blabla string with spaces`""
于 2012-10-29T11:52:17.233 回答