I am having trouble replicating this command from CMD
set APPDATA=D:\
.
The best equivalent I have is Set-Variable -Name $env:APPDATA -Value D:\
. This does not work!
The full script is:
set APPDATA=D:\
start java -jar D:\.minecraft\minecraft.jar
This sets it so Java looks in D:\
for .minecraft
instead of APPDATA
.
The full PowerShell version (which doesn't work right) is:
& Set-Variable -Name $env:APPDATA -Value D:\
& 'C:\Program Files\Java\jre1.8.0_66\bin\java.exe' -jar D:\.minecraft\Minecraft.jar
It still looks at the read-only version of $env:APPDATA
. I don't see why it can't be changed in the running environment for the shell's session, like cmd and most *nix shells!
I'm sure there are more uses for this than just running Minecraft. :P
When you use Set-Variable
the -Name
argument should NOT have the dollar sign ($).
# WRONG: Set's the variable using the name stored in ENV:APPDATA
Set-Variable -Name $env:APPDATA -Value D:\
Also, Set-Variable
doesn't appear to work as expected with environment variables. I'm assuming this is because Set-Variable
is specifically designed to work with Variable:
variable provider, rather than the env:
environment provider. (I verified this locally, using Set-Variable -Name ENV:AppData -Value "foo"
created a variable called 'ENV:AppData' in the Variable:
provider.)
Alternative 1 (simple format):
$ENV:AppData="D:\"
& 'C:\Program Files\Java\jre1.8.0_66\bin\java.exe' -jar D:\.minecraft\Minecraft.jar
Alternative 2 (using C# API):
[Environment]::SetEnvironmentVariable("APPDATA", "D:\")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With