Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set environment variable and execute command in one line (PowerShell)?

How can I set value of environment variable and execute command in one line in PowerShell?

I have this:

PGPASSWORD=db_pass psql -U db_user -d db_name -a -h localhost -f some.sql

and it's working great in Linux.

How can I translate above to PowerShell command which will work on Windows Server 2012 - Windows 10?

I tried:

SET "PGPASSWORD=db_pass" & "C:\Program Files (x86)\PostgreSQL\9.4\bin\psql.exe" -U postgres -a -d db_name -h localhost -f some.sql

and I get error: "The & is reserved for future use..." - Windows 2012.

like image 891
BPS Avatar asked Jan 09 '18 08:01

BPS


1 Answers

Try this:

$env:PGPASSWORD='db_pass'; & "C:\Program Files (x86)\PostgreSQL\9.4\bin\psql.exe" -U postgres -a -d db_name -h localhost -f some.sql

In reality this is two commands separated by a semi-colon so they can be run as a single line.

Note also that from PowerShell you set environment variables via $env:<name of var>.

like image 182
Mark Wragg Avatar answered Sep 30 '22 17:09

Mark Wragg