繁体   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