首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果不知道将从何处运行,如何运行powershell脚本?

如果不知道将从何处运行,如何运行powershell脚本?
EN

Stack Overflow用户
提问于 2020-01-16 17:42:45
回答 2查看 146关注 0票数 0

我是powershell的新手,所以这可能是我不理解某些东西的原因。

我正在用powershell编写一个工具,并让该工具在c:\Users\Documents\WindowsPowerShell\Modules中工作。

我想要的是能够将工具复制到U盘,并从U盘运行它。

如果工具不在PSModulePath环境变量path中,我如何让它运行?

或者,如何将U盘添加到PSModulePath路径?

EN

回答 2

Stack Overflow用户

发布于 2020-01-17 01:52:06

如果你希望你的脚本是可移植的,你也必须随身携带依赖模块。但是,在脚本中,您可以确保将U盘上模块父目录的完整路径作为进程级环境变量添加到PSModulePath中:

代码语言:javascript
运行
复制
$portableModuleDirectory = [System.IO.DirectoryInfo]'./relative/path/to/dependent/module'
$env:PSModulePath += ";$(Split-Path -Parent $portableModuleDirectory.FullName)"
Import-Module ModuleName

然而,这是一个繁琐的工作。这里最好的解决方案是将你的包推送到host your own internal nuget feed,这样如果你不能上传到公共PowerShell Gallery上,你可以从你的网络将模块安装在你需要它的任何机器上。

票数 0
EN

Stack Overflow用户

发布于 2020-01-17 17:15:19

谢谢你的帮助。我有一个解决方案,它的工作方式是将以下内容放在.ps1脚本中,并使用该脚本导入相关模块并调用第一个函数。

代码语言:javascript
运行
复制
#find local directory 
$LocalDir = Split-Path $MyInvocation.MyCommand.Path -Parent

#prove correct directory found.
Write-Host "Starting module load: $($MyInvocation.MyCommand) in directory = $LocalDir"
#load modules
Import-Module $LocalDir/Module –Force

#call first function
firstfunction

我不能让$PSScriptRoot工作,但Split-Path $MyInvocation.MyCommand.Path –Parent代码的优势在于它也可以在ISE中工作。然后,我将依赖模块放在.ps1脚本下面的目录中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59766723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档