將 cwd / pwd / (.) 加入到 powershell 中的路徑

將 cwd / pwd / (.) 加入到 powershell 中的路徑

我有一個程式想在 Windows PowerShell 中運行。在 cmd 中,我只需輸入script.cmd,它就會運行腳本。在 PowerShell 中我顯然必須這樣做./script.cmd

預設情況下,BASH 的行為類似。要改變 BASH 的行為,你需要 doexport PATH=$PATH:.然後script.shwill work 而不僅僅是./script.sh.

我的問題是...如何script.cmd在 PowerShell 中工作?我必須做類似的事情嗎export PATH=$PATH:.?我echo $PATH在 PowerShell 中做了,但沒有輸出任何內容..

答案1

首先,閱讀get-help about_command_precedence以了解其工作原理。

接下來,鍵入$env:path以查看目前的路徑。

您可以將目錄附加到 PATH,如下所示:$env:path += ";C:\Scripts"

您也可以將目前目錄附加到 PATH,如下所示:$env:path += ";."

get-item env:將顯示所有環境變數。

答案2

如果你想永久地做到這一點,這就是我所做的。

(我不會將 . 添加到路徑中,而是嘗試添加您現在所在的當前目錄)

例如,您可以自行編輯註冊表。

$oldpath = (Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
$newpath = "$oldpath;$($pwd.Path)"
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath
#final check
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).Path

當然,您需要該權限的管理員權限。因此,如果您不是管理員,那麼讓我們找到另一種方法,powershell 為您提供了另一種方法來執行此操作,如下所示:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$($pwd.Path)", "User")

相關內容