PowerShell在CMD提示符中执行命令

时间:2017-07-03 12:20:16

标签: powershell cmd

我正在编写一个在PostgreSQL中创建用户的PowerShell脚本。脚本中的一些步骤是:

  1. 打开CMD窗口
  2. 执行第一个命令

    SET PGPASSWORD=superPassword
    
  3. 执行第二个命令

    "C:\Program Files\PostgreSQL\9.6\bin\psql.exe --username postgres --command "CREATE USER Ivan WITH CREATEDB PASSWORD 'ivanPassword';"
    
  4. 我有一个问题,我发现只有:

    cmd.exe /c "SET PGPASSWORD=superPassword"
    

    但它没有用。我不知道如何在一个打开的命令提示符窗口中执行这两个命令。

2 个答案:

答案 0 :(得分:5)

this answer到DBA StackExchange上的类似问题:

Set-Location 'C:\Program Files\PostgreSQL\9.6\bin'
$env:PGPASSWORD = 'superPassword'
& .\psql.exe --% --username postgres --command "CREATE USER Ivan WITH CREATEDB PASSWORD 'ivanPassword';"

请注意,stop-parsing symbol--%)需要PowerShell v3或更高版本。

答案 1 :(得分:1)

来自cmd.exe帮助:

  

/ C执行string指定的命令,然后终止
  / K执行string指定的命令但仍然是

更改您的脚本以执行cmd.exe /K cd c:\temp,您就可以了。

相关问题