Ser*_*ock 47 powershell module
我正在学习PowerShell,我正在尝试构建自己的模块库.
我写了一个简单的模块XMLHelpers.psm1并放入我的文件夹$home/WindowsPowerShell/Modules.
当我做:
 import-module full_path_to_XMLHelpers.psm1
有用.但当我这样做时:
import-module XMLHelpers
它不起作用,我收到错误:
Import-Module:未加载指定的模块"xmlhelpers",因为在任何模块目录中都找不到有效的模块文件.
我检查过环境变量PSModulePath包含这个文件夹.由于它是一个网络文件夹,我还尝试将其移动到本地文件夹并进行修改PSModulePath但没有成功
 $env:PSModulePath=$env:PSModulePath+";"+'C:\local'
有什么可能导致这个问题的想法吗?
Ryn*_*ant 87
该模块需要放在与模块同名的文件夹中.在你的情况下:
$home/WindowsPowerShell/Modules/XMLHelpers/
完整的路径是:
$home/WindowsPowerShell/Modules/XMLHelpers/XMLHelpers.psm1
然后你就可以做到:
import-module XMLHelpers
vit*_*ilo 10
1.这将在当前文件夹中搜索XMLHelpers/XMLHelpers.psm1
Import-Module (Resolve-Path('XMLHelpers'))
2.这将在当前文件夹中搜索XMLHelpers.psm1
Import-Module (Resolve-Path('XMLHelpers.psm1'))
小智 9
我认为Import-Module是试图在默认目录中找到该模块C:\Windows\System32\WindowsPowerShell\v1.0\Modules.
尝试放置完整路径,或将其复制到 C:\Windows\System32\WindowsPowerShell\v1.0\Modules
在成功之前,我遇到了同样的错误并尝试了很多事情。解决方案是将脚本的路径添加到模块的相对路径中,如下所示:
// Note that .Path will only be available during script-execution
$ScriptPath = Split-Path $MyInvocation.MyCommand.Path
Import-Module $ScriptPath\Modules\Builder.psm1
顺便说一句,您应该看看http://msdn.microsoft.com/en-us/library/dd878284(v=vs.85).aspx,其中指出:
从 Windows PowerShell 3.0 开始,当在命令中使用模块中的任何 cmdlet 或函数时,将自动导入模块。此功能适用于包含在 PSModulePath 环境变量 ($env:PSModulePath) 值中的目录中的任何模块
我遇到了这个问题,但只是在 Visual Studio Code 中,而不是在 ISE 中。结果我在 VSCode 中使用了 x86 会话。我显示了 PowerShell 会话菜单并切换到 x64 会话,所有模块都在没有完整路径的情况下开始工作。我使用的是 VSCode 版本 1.17.2,架构 x64。我的模块存储在C:\Windows\System32\WindowsPowerShell\v1.0\Modules目录中。
| 归档时间: | 
 | 
| 查看次数: | 195697 次 | 
| 最近记录: |