这应该是一项简单的任务,但我已经看到几次关于如何获取已执行cmdlet所在目录的路径的尝试,成功与否参差不齐。例如,当我执行在C:\temp\myscripts\settings.xml
中有一个设置文件的C:\temp\myscripts\mycmdlet.ps1
时,我希望能够将C:\temp\myscripts
存储在mycmdlet.ps1
中的一个变量中。
这是一个有效的解决方案(虽然有点麻烦):
$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$settingspath = $directorypath + '\settings.xml'
另一个人建议这个解决方案,它只在我们的测试环境中工作:
$settingspath = '.\settings.xml'
我非常喜欢后一种方法,它比每次都必须将文件路径解析为参数要好,但是我不能让它在我的开发环境中工作。我该怎么办?这与PowerShell的配置方式有关吗?
发布于 2014-04-17 19:30:22
是的,这应该行得通。但是如果你需要查看绝对路径,这就是你所需要的:
(Get-Item .).FullName
发布于 2015-05-27 10:23:39
发布于 2016-01-10 16:51:02
尝试:
(Get-Location).path
或者:
($pwd).path
https://stackoverflow.com/questions/8343767
复制相似问题