[英]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.