如何将包含连字符的$ variable作为参数传递给另一个函数

作为示例,我有一个名为web-utils的模块,假设我对其进行了一些更新,并且需要像“ module reload explained here”一样重新加载它。我已经创建了一个函数

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
zhangmhua87 回答:如何将包含连字符的$ variable作为参数传递给另一个函数

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152123.html

大家都在问