В качестве примера у меня есть модуль с именем 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