我无法从CMD复制此命令
set APPDATA=D:\
.
我拥有的最好的等价物是Set-Variable -Name $env:APPDATA -Value D:\
.这不起作用!
完整的脚本是:
set APPDATA=D:\ start java -jar D:\.minecraft\minecraft.jar
这样就设置了Java D:\
,.minecraft
而不是APPDATA
.
完整的PowerShell版本(不能正常工作)是:
& Set-Variable -Name $env:APPDATA -Value D:\ & 'C:\Program Files\Java\jre1.8.0_66\bin\java.exe' -jar D:\.minecraft\Minecraft.jar
它仍然看着只读版本$env:APPDATA
.我不明白为什么它不能在shell的会话的运行环境中更改,比如cmd和大多数*nix shell!
我敢肯定,这是你的更多的用途比刚刚运行的Minecraft.:P
当您使用Set-Variable
的-Name
说法应该不具有美元符号($).
# WRONG: Set's the variable using the name stored in ENV:APPDATA Set-Variable -Name $env:APPDATA -Value D:\
此外,Set-Variable
似乎没有像环境变量预期的那样工作.我假设这是因为Set-Variable
它专门设计用于Variable:
变量提供程序,而不是env:
环境提供程序.(我在本地验证了这一点,Set-Variable -Name ENV:AppData -Value "foo"
在Variable:
提供程序中使用了一个名为'ENV:AppData'的变量.)
备选方案1(简单格式):
$ENV:AppData="D:\" & 'C:\Program Files\Java\jre1.8.0_66\bin\java.exe' -jar D:\.minecraft\Minecraft.jar
备选方案2(使用C#API):
[Environment]::SetEnvironmentVariable("APPDATA", "D:\")