[英]Executing PowerShell script from C# wpf
我有一個PowerShell腳本,該腳本在PowerShell腳本中執行一個SQL文件(該文件包含將數據從XML文件導出到SQL Server數據庫表的命令):
Function Export-Data
{
$srvrInst = $env:COMPUTERNAME;
$db = "DataModel.PAModel";
$apc = "C:\DCT\SQL\AccountingPeriodCases.sql";
Invoke-Sqlcmd -InputFile $apc -ServerInstance $srvrInst -Database $db;
}
Export-Data;
我需要從WPF-C#代碼調用此Smpl.ps1文件。 也就是說,當選中與數據導出相對應的復選框時,應調用並執行此Smpl.ps1。
所以我有C#代碼段:
int DataBox_Execute()
{
Runspace rs = RunspaceFactory.CreateRunspace();
rs.ThreadOptions = PSThreadOptions.UseCurrentThread;
rs.Open();
int k = 0;
PowerShell ps = PowerShell.Create();
if (DataBox.IsChecked ?? true)
{
ps.Runspace = rs;
ps.AddScript(@"C:\DCT\LogCapture\Smpl.ps1").Invoke();
k = 1;
}
rs.Close();
return k;
}
但是我不明白為什么它沒有被執行。 當我回去檢查SQL Server數據庫時,原本應該有數據的表一直空着。
我確信腳本可以正常工作,因為當我嘗試僅通過PowerShell執行腳本時,SQL數據庫表就顯示了從xml文件導出的值,因為我希望它能正常工作。
所以我想知道WPF-C#中的程序部分是否有問題。 誰能幫幫我嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.