Как я могу развернуть все переменные в $scriptblock
, не выписывая вручную все переменные:
Мне нравится делать это так:
>>$scriptBlock = {Install-Package -Name $($Using:h.Name) \
>> -RequiredVersion $($Using:h.Version) \
>> -Source $Using:nuget_source -Force -SkipDependencies}
>>write-host ("install-command: {0}" -f $scriptBlock)
install-command: Install-Package -Name $($Using:h.Name) \
-RequiredVersion $($Using:h.Version) -Source $Using:nuget_source \
-Force -SkipDependencies
Но я должен это сделатьвот так, что усложнит автоматизацию:
>>write-host ("install-command: Install-Package -Name {0} -RequiredVersion {1} -Source {2} -Force -SkipDependencies" \
>> -f $h.Name, $h.Version, $nuget_source)
install-command: Install-Package -Name Selenium.WebDriver.IEDriver \
-RequiredVersion 3.150.1 -Source https://nuget.org/api/v2/ -Force -SkipDependencies
Ответ в переменной раскрытия powershell в блоке скриптов не помогает, потому что это уже блок скриптов:
>> [Scriptblock]$sb = [ScriptBlock]::Create($testScriptBlock)
>> $sb
Install-Package -Name $($Using:h.Name) -RequiredVersion \
$($Using:h.Version) -Source $Using:nuget_source -Force -SkipDependencies