Вызов одного сценария PS (с параметром switch) из другого сценария PS с использованием сплаттинга - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующий скрипт

Untitled2.ps1:

$scriptName = '.\Untitled1.ps1'
$args =  @{
    someVal = "Test"
}
if ($true) {
    $args.testSwitch = $true
}
powershell -ExecutionPolicy Unrestricted -File $scriptName @args

, который вызывает скрипт, показанный ниже:

Untitled1.ps1:

[CmdletBinding()]
Param(
    [Parameter(Mandatory=$false)]
    [switch]$testSwitch
    [Parameter(Mandatory=$false)]
    [string]$someVal
)

$ErrorActionPreference = "Stop"
$WarningPreference = "Stop"
Set-PSDebug -Strict -Trace 0

$PSBoundParameters | Out-String

Однако я получаю сообщение об ошибке, показанное ниже

C:\PowershellScripts\Untitled1.ps1 : Cannot process argument transformation
on parameter 'testSwitch'. Cannot convert value "System.String" to type
"System.Management.Automation.SwitchParameter". Boolean parameters accept
only Boolean values and numbers, such as $True, $False, 1 or 0.
    + CategoryInfo          : InvalidData: (:) [Untitled1.ps1], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Untitled1.ps1

Я не совсем уверен, в чем проблема.Из того, что я прочитал, вы можете назначить $true для параметра switch при разделении с использованием хеш-таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...