相关疑难解决方法(0)

设置Windows PowerShell路径变量

我发现设置PATH环境变量只影响旧的命令提示符.PowerShell似乎有不同的环境设置.如何更改PowerShell(v1)的环境变量?

注意:

我希望永久更改我的更改,因此每次运行PowerShell时都不必设置它.PowerShell有配置文件吗?像Unix上的Bash配置文件?

windows powershell

558
推荐指数
16
解决办法
56万
查看次数

在PowerShell中重新加载路径

如果我有一个运行PowerShell ISE的实例,我安装了修改PATH的东西,或者我在PowerShell之外以任何方式修改它,那么我需要重新启动PowerShell才能看到更新的PATH变量.

有没有办法从PowerShell中重新加载路径而不重新启动它?

console powershell powershell-ise

120
推荐指数
6
解决办法
4万
查看次数

如何从cmd永久更新系统PATH变量?

我们可以使用这里setx讨论的.

setx PATH "%PATH%;C:\Something\bin"
Run Code Online (Sandbox Code Playgroud)

但是这个命令只能更改为用户PATH变量而不是系统变量.

我们如何制定类似的系统范围命令?

在此输入图像描述

windows cmd path

23
推荐指数
2
解决办法
3万
查看次数

PowerShell在双引号内插值时输出数组项

我在PowerShell周围的数组和双引号中发现了一些奇怪的行为.如果我在数组中创建并打印第一个元素,例如:

$test = @('testing')
echo $test[0]

Output:
testing
Run Code Online (Sandbox Code Playgroud)

一切正常.但如果我在它周围加上双引号:

echo "$test[0]"

Output:
testing[0]
Run Code Online (Sandbox Code Playgroud)

仅评估了$ test变量,并且数组标记[0]被字面上视为字符串.简单的解决方法是避免在双引号中插入数组变量,或者首先将它们分配给另一个变量.但是这种行为是设计的吗?

powershell string-interpolation

13
推荐指数
3
解决办法
1万
查看次数

尽管 Windows 终端可以找到,但 VS Code 终端无法找到 AWS SAM

我通过适用于 Windows 的 AWS 的 msi 安装程序安装了 AWS SAM。运行安装程序后,我sam --version在cmd和powershell中运行。

PS C:\Users\dgupta> sam --version
SAM CLI, version 1.26.0
Run Code Online (Sandbox Code Playgroud)

它返回我刚刚安装的版本。然而,在 VS Code 中,我打开了一个终端并运行sam --version它,结果出现错误。

PS C:\Users\dgupta> sam --version
SAM CLI, version 1.26.0
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?VS Code 终端和普通终端不能访问相同的环境变量吗?

windows powershell path-variables visual-studio-code aws-sam-cli

3
推荐指数
1
解决办法
6011
查看次数

无法使用 SetEnvironmentVariable 设置 PATH

我正在尝试在我的 powershell 脚本中设置环境变量。

这是我的代码片段。它设置系统环境变量(系统属性>环境变量>路径)但是,我无法在powershell中启动rabbitmq-service。

'$ENV:PATH' 命令输出没有新添加的路径。系统重新启动后 $ENV:PATH 包含新路径,但命令“rabbitmq-service”仍然不起作用。

  # SET Erlang and RabbitMQ  Home Path
    $ERLANG_HOME = "$env:PROGRAMFILES\erl9.2"
    [System.Environment]::SetEnvironmentVariable("ERLANG_HOME", $ERLANG_HOME, "Machine")

    $ERTS_HOME = "$env:PROGRAMFILES\erts-9.2"
    [System.Environment]::SetEnvironmentVariable("ERTS_HOME", $ERTS_HOME, "Machine")

    $RABBITMQ_HOME = "$env:PROGRAMFILES\RabbitMQ Server\rabbitmq_server-3.6.11" 
    [System.Environment]::SetEnvironmentVariable("RABBITMQ_HOME", $RABBITMQ_HOME, "Machine")


    # Add Erlang and RabbitMQ to Path     
    $System_Path_Elems = [System.Environment]::GetEnvironmentVariable("PATH", "Machine").Split(";")
    if (!$System_Path_Elems.Contains("$RABBITMQ_HOME\sbin") -and !$System_Path_Elems.Contains("$ERLANG_HOME\bin") -and !$System_Path_Elems.Contains("$ERTS_HOME\bin"))
    {       
    $newPath = [System.String]::Join(";", $System_Path_Elems + "$ERLANG_HOME\bin" + "$ERTS_HOME\bin" + "$RABBITMQ_HOME\sbin")
    [System.Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")   
    }
Run Code Online (Sandbox Code Playgroud)

如果我在我的脚本中使用 $env:PATH 设置 PATH,它会起作用。

$env:Path += ";C:\\Program Files\\erl9.2\\erts-9.2\\bin;
C:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.6.11\\sbin;C:\\Program Files\\erl9.2\\bin"  
Run Code Online (Sandbox Code Playgroud)

我能够毫无问题地执行以下命令。

rabbitmq-service …
Run Code Online (Sandbox Code Playgroud)

powershell erlang rabbitmq

2
推荐指数
1
解决办法
1161
查看次数