我有一个PowerShell脚本D:\temp.
当我运行此脚本时,我希望列出该文件的当前位置.我该怎么做呢?
例如,此代码将在DOS批处理文件中完成; 我想将其转换为PowerShell脚本...
FOR /f "usebackq tokens=*" %%a IN ('%0') DO SET this_cmds_dir=%%~dpa
CD /d "%this_cmds_dir%"
Run Code Online (Sandbox Code Playgroud) 我正在学习PowerShell,我正在尝试构建自己的模块库.
我写了一个简单的模块XMLHelpers.psm1并放入我的文件夹$home/WindowsPowerShell/Modules.
当我做:
import-module full_path_to_XMLHelpers.psm1
Run Code Online (Sandbox Code Playgroud)
有用.但当我这样做时:
import-module XMLHelpers
Run Code Online (Sandbox Code Playgroud)
它不起作用,我收到错误:
Import-Module:未加载指定的模块"xmlhelpers",因为在任何模块目录中都找不到有效的模块文件.
我检查过环境变量PSModulePath包含这个文件夹.由于它是一个网络文件夹,我还尝试将其移动到本地文件夹并进行修改PSModulePath但没有成功
$env:PSModulePath=$env:PSModulePath+";"+'C:\local'
Run Code Online (Sandbox Code Playgroud)
有什么可能导致这个问题的想法吗?
如果我想从我的主要PowerShell脚本中分离出我的一些功能,我可以将其作为.ps1文件和点源编写相同,或者我可以创建它作为a .psm1并导入相同的使用Import-Module.
哪一个更好,为什么?