获取执行脚本的当前目录,而不是脚本的当前执行目录
Getting the current directory where the script is executed as opposed to the current executing directory of the script
我想获取执行脚本的当前目录,而不是脚本的当前执行目录。
脚本位于 'd:\projects\code\development.tools',我想要位于 'd:\projects\code\development\ace\ace.testing'
的项目目录
现在,当我在 Psake Properties 之外执行 'Write-Host $Env:PWD' 或只是 '$Env:PWD' 时,我实际上得到了我想要的东西,但是当我尝试从 Properties 中获取它时,它 returns what $PWD returns 那就是脚本的执行目录。
Write-Host $Env:PWD # returns d:\projects\code\development\ace\ace.testing
Properties {
$baseDir = $Env:PWD # returns d:\projects\code\development\.tools
}
我不确定这里发生了什么,但我想不通。
我试图将正确的路径存储在一个变量中,但它并没有真正起作用。
更新:
花了几个小时后,我意识到它确实有效!我断断续续地处理那个脚本,在某个地方放了一个 throw 语句,却忘记了它的存在!所以我认为 Psake 正在做一些奇怪的事情,因此它不起作用,但是是的,Psake 是纯粹的! ;)
所以如果你想获取脚本正在执行的当前目录 $Env:PWD 似乎可以做到! :)
获取正在执行的脚本的位置:
Split-Path $myInvocation.MyCommand.Path
获取当前工作目录路径:
(Get-Item -Path '.\' -Verbose).FullName
花了几个小时后,我意识到它确实有效!我断断续续地处理那个脚本,在某个地方放了一个 throw 语句,却忘了它在那里!
所以如果你想获取脚本正在执行的当前目录 $Env:PWD 似乎可以做到! :)
我想获取执行脚本的当前目录,而不是脚本的当前执行目录。
脚本位于 'd:\projects\code\development.tools',我想要位于 'd:\projects\code\development\ace\ace.testing'
的项目目录现在,当我在 Psake Properties 之外执行 'Write-Host $Env:PWD' 或只是 '$Env:PWD' 时,我实际上得到了我想要的东西,但是当我尝试从 Properties 中获取它时,它 returns what $PWD returns 那就是脚本的执行目录。
Write-Host $Env:PWD # returns d:\projects\code\development\ace\ace.testing
Properties {
$baseDir = $Env:PWD # returns d:\projects\code\development\.tools
}
我不确定这里发生了什么,但我想不通。
我试图将正确的路径存储在一个变量中,但它并没有真正起作用。
更新:
花了几个小时后,我意识到它确实有效!我断断续续地处理那个脚本,在某个地方放了一个 throw 语句,却忘记了它的存在!所以我认为 Psake 正在做一些奇怪的事情,因此它不起作用,但是是的,Psake 是纯粹的! ;)
所以如果你想获取脚本正在执行的当前目录 $Env:PWD 似乎可以做到! :)
获取正在执行的脚本的位置:
Split-Path $myInvocation.MyCommand.Path
获取当前工作目录路径:
(Get-Item -Path '.\' -Verbose).FullName
花了几个小时后,我意识到它确实有效!我断断续续地处理那个脚本,在某个地方放了一个 throw 语句,却忘了它在那里!
所以如果你想获取脚本正在执行的当前目录 $Env:PWD 似乎可以做到! :)