我刚开始使用Powershell进行编程,因此需要帮助。我在变量中声明了此命令:
$Command_line="sqlcmd -S $SName -U $UName -P $Password -d $DbName -I -i $File"
我要执行此命令。我尝试使用下面的代码,但是没有用:
Invoke-Expression $Command_line
# utilisation de son alias
iex $Command_line
# utilisation de l'opérateur CALL
&$Command_line
# utilsation de l'opérateur dot-sourced
.$Command_line
# On executant la variable par $ExecutionContext
$ExecutionContext.InvokeCommand.InvokeScript($Command_line)
我也尝试过:
#Start-Process "$Command_line"
并且:
$Command_line= "cmd.exe /C ""sqlcmd -S $SName -U $UName -P $Password -d $DbName -I -i $File"
writeLog $logFile "Execution de la commande $Command_line" #Affichage de la commande
#$NomExe = "cmd.exe"
#$WorkingDir = "C:\"
#Lancement de l'exe
#start-process -FilePath $NomExe -ArgumentList $Command_line -workingdirectory $WorkingDir
但是,我收到了this link所示的错误消息。
答案 0 :(得分:1)
这就是您需要做的:
sqlcmd -S $SName -U $UName -P $Password -d $DbName -I -i $File
您不需要带引号的字符串或任何花哨的命令。只需使用命令行即可。
由于您使用的是PowerShell,因此我也建议您可以使用SQLPS模块。
答案 1 :(得分:0)
给出您的示例:
$Command_line="sqlcmd -S $SName -U $UName -P $Password -d $DbName -I -i $File"
您可以这样执行它:
& ([scriptblock]::Create($Command_line))