我有一个问题。我如何构建一个方法(dataCapture())来收集我在应用程序中从PowerShell命令输出的数据,然后解析数据并解密逗号分隔,以便它可以使用Oledb将数据输入到正确行下的Excel中和列?下面我已经为我的PowerShell应用程序附加了我的方法。任何帮助或想法将非常感谢!我已经构建了Excel OleDB,我不需要帮助。
public void runPS()
{
//Run query
PowerShell.Create().AddScript(diskInfo()).AddCommand("Out-String").Invoke<string>();
foreach (string str in PowerShell.Create().AddScript(diskInfo()).AddCommand("Out-String").Invoke<string>())
{
dataCapture(str);
}
}
public void dataCapture(string input)
{
//Do some code using the input
excelWrite(id, volId, idSpc, idTy)
}
private void excelWrite(string id, string volId, int idSpc, int idTy)
{
//Does the OleDb for excel
}
答案 0 :(得分:1)
这就是我要找的:http://msdn.microsoft.com/en-us/library/ms228388(v=vs.80).aspx
static void Main()
{
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine("Original text: '{0}'", text);
string[] words = text.Split(delimiterChars);
System.Console.WriteLine("{0} words in text:", words.Length);
foreach (string s in words)
{
System.Console.WriteLine(s);
}
}
答案 1 :(得分:0)
您可以直接使用PowerShell中的任何内容。我在powershell中做了一些db查询,所以我很确定你可以直接从powershell使用JET或OleDB,而无需在.NET中解析数据。
快速谷歌搜索,本文使用COM自动化:http://www.petri.co.il/export-to-excel-with-powershell.htm,如果您需要移动大量数据,可能不是最佳解决方案,但应该可以工作几百行。
Powershell非常强大,因此您可以从中调用代码,并将数据传递给它。不仅仅是字符串,还有模式复杂的对象。
This Powershell script谈论从Excel读取,但很可能你可以执行任何命令到OleDB,所以它也插入到Excel中。
直接从Powershell调用您的代码:)
Powershell code:
Add-Type -Path "CallMeFromPowershell.dll"
$result = [CallMeFromPowershell.CallFromPS]::DoSomething("hello", 123)
$result
C# code:
using System;
namespace CallMeFromPowershell
{
public static class CallFromPS
{
public static string DoSomething(string imAString, int imAnInt)
{
return String.Format(@"The string: '{0}', the integer: '{1}'", imAString, imAnInt);
}
}
}
输出应为The string: 'hello', the integer: '123'