Как передать переменную $, содержащую дефис в качестве значения, в другую функцию - PullRequest
0 голосов
/ 06 ноября 2019

В качестве примера у меня есть модуль с именем web-utils, скажем, я делаю некоторые обновления для него, и мне нужно перезагрузить его, как " перезагрузка модуля объяснена здесь ". Я создал функцию

function Module-Reload([string]$name) {
  Remove-Module -Name $name -Force -WarningAction SilentlyContinue
  Import-Module -Name $name -Force -WarningAction SilentlyContinue
}

, которая выдает ошибку, поскольку имя модуля содержит дефис, вопрос: существует ли способ автоматически экранировать дефис в значении переменной? или есть другой способ передачи таких параметров? Поскольку Import-Modules -Force web-utils работает безупречно только тогда, когда он набирается вручную в CLI. В случае выполнения этого с помощью функции получается следующее:

Import-Module : The specified module 'web`-utils' was not loaded because no
valid module file was found in any module directory.
At WindowsPowerShell\Aliases.ps1:35 char:3
+   Import-Module -Name $value -Force -WarningAction SilentlyContinue
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (web`-utils:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...