你可以使用很多方法来做到这一点。
还有其他方法,如使用调用操作符(&),Invoke-Expression cmdlet等。但它们被认为是不安全的。微软建议使用Start-Process。
方法1
一个简单的例子
Start-Process -NoNewWindow -FilePath "C:\wamp64\bin\mysql\mysql5.7.19\bin\mysql" -ArgumentList "-u root","-proot","-h localhost"
在你的情况下
Start-Process -NoNewWindow -FilePath "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -ArgumentList "-verb:sync","-source:dbfullsql=`"Data Source=mysource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;`"","-dest:dbfullsql=`"Data Source=.\mydestsource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;`"","computername=10.10.10.10","username=administrator","password=adminpass"
在这个方法中,你用逗号分隔ArgumentList中的每个参数。
方法2
简单的例子
Start-Process -NoNewWindow -FilePath "C:\wamp64\bin\mysql\mysql5.7.19\bin\mysql" -ArgumentList "-u root -proot -h localhost"
在你的情况下
Start-Process -NoNewWindow -FilePath "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -ArgumentList "-verb:sync -source:dbfullsql=`"Data Source=mysource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;`" -dest:dbfullsql=`"Data Source=.\mydestsource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;`",computername=10.10.10.10,username=administrator,password=adminpass"
这个方法更简单,因为它允许一次性输入参数。
注意,在powershell中,要在字符串中表示引号("),您应该插入重音(')(这是美国键盘中Tab键上方的键)。
-NoNewWindow
参数用于在当前控制台窗口中显示新进程。默认情况下,Windows PowerShell会打开一个新窗口。
参考:Powershell/Scripting/Start-Process