将 cwd / pwd / (。)添加到 powershell 中的路径

将 cwd / pwd / (。)添加到 powershell 中的路径

所以我有一个想在 Windows PowerShell 中运行的程序。在 cmd 中我只需输入script.cmd,它就会运行脚本。在 PowerShell 中我显然必须执行./script.cmd

BASH 默认的行为类似。要更改 BASH 的行为,您需要执行export PATH=$PATH:.,然后script.sh才能工作,而不仅仅是./script.sh

我的问题是...我该如何script.cmd在 PowerShell 中工作?我必须做类似的事情吗export PATH=$PATH:.?我echo $PATH在 PowerShell 中做了,但没有输出任何内容。

答案1

首先,阅读一下get-help about_command_precedence以了解其工作原理。

接下来,输入$env:path以查看当前的 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")

相关内容