I have an environment variable named GOPATH
. In old style command shell I could run the command %GOPATH%\bin\hello
like this:
Is there an equivalently simple command in Windows PowerShell?
I am not trying to print the environment variable. I am trying to USE it.
The variable is set correctly:
C:\WINDOWS\system32> echo $env:gopath
C:\per\go
Now I want to actually use this in a command line call, and it fails:
C:\WINDOWS\system32> $env:gopath\bin\hello
At line:1 char:12
+ $env:gopath\bin\hello
+ ~~~~~~~~~~
Unexpected token '\bin\hello' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
We can also access environment variables using the built-in variable called $env followed by a colon and the name of the environment variable. For example, instead of using Get-Item or Get-ChildItem and using the Env drive, I can save some keystrokes and instead simply specify $env:COMPUTERNAME.
Select System. Select Advanced System Settings. Go to the Advanced tab. Select Environment Variables....
To list all the environment variables, use the command " env " (or " printenv "). You could also use " set " to list all the variables, including all local variables. To reference a variable, use $varname , with a prefix '$' (Windows uses %varname% ).
Use $env:[Variablename]
For example:
$env:Appdata
or
$env:COMPUTERNAME
using your example:
$env:GOPATH
To use this to execute a script use
& "$env:GOPATH\bin\hello"
Using an environment variable in a path to invoke a command would require either dot notation or the call operator. The quotation marks expand the variable and the call operator invokes the path.
. "$env:M2_Home\bin\mvn.cmd"
& "$env:M2_Home\bin\mvn.cmd"
One solution is to use start-process -NoNewWindow to run it.
C:\windows\system32> start-process -nonewwindow $env:gopath\bin\hello.exe
C:\windows\system32Hello, Go examples!
>
This is much more verbose obviously and puts the command prompt at an odd looking prompt: >
. But it does work.
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