簡體   English   中英

從C#WPF執行PowerShell腳本

[英]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#中的程序部分是否有問題。 誰能幫幫我嗎?

閱讀評論並檢查:

https://msdn.microsoft.com/zh-CN/library/dn614674(v=vs.85).aspx

檢查是否已為AddScript路徑包括布爾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM