首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取正在执行的cmdlet的当前目录

如何获取正在执行的cmdlet的当前目录
EN

Stack Overflow用户
提问于 2011-12-01 23:23:53
回答 15查看 449.6K关注 0票数 230

这应该是一项简单的任务,但我已经看到几次关于如何获取已执行cmdlet所在目录的路径的尝试,成功与否参差不齐。例如,当我执行在C:\temp\myscripts\settings.xml中有一个设置文件的C:\temp\myscripts\mycmdlet.ps1时,我希望能够将C:\temp\myscripts存储在mycmdlet.ps1中的一个变量中。

这是一个有效的解决方案(虽然有点麻烦):

代码语言:javascript
复制
$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$settingspath = $directorypath + '\settings.xml'

另一个人建议这个解决方案,它只在我们的测试环境中工作:

代码语言:javascript
复制
$settingspath = '.\settings.xml'

我非常喜欢后一种方法,它比每次都必须将文件路径解析为参数要好,但是我不能让它在我的开发环境中工作。我该怎么办?这与PowerShell的配置方式有关吗?

EN

回答 15

Stack Overflow用户

发布于 2014-04-17 19:30:22

是的,这应该行得通。但是如果你需要查看绝对路径,这就是你所需要的:

代码语言:javascript
复制
(Get-Item .).FullName
票数 282
EN

Stack Overflow用户

发布于 2015-05-27 10:23:39

您还可以使用:

代码语言:javascript
复制
(Resolve-Path .\).Path

括号中的部分返回一个PathInfo对象。

(从PowerShell 2.0开始提供。)

票数 46
EN

Stack Overflow用户

发布于 2016-01-10 16:51:02

尝试:

代码语言:javascript
复制
(Get-Location).path

或者:

代码语言:javascript
复制
($pwd).path
票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8343767

复制
相关文章

相似问题

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