0

我有个问题。我将如何构建一个方法 (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
}
4

2 回答 2

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);
    }
}
于 2012-06-23T21:56:59.567 回答
0

您可以直接从 powershell 使用几乎任何东西。我在 powershell 中进行了一些数据库查询,所以我很确定您可以直接从 powershell 使用 JET 或 OleDB,而无需在 .NET 中解析数据。

快速谷歌搜索,本文使用 COM 自动化:http ://www.petri.co.il/export-to-excel-with-powershell.htm,如果您需要移动大量数据,这可能不是最佳解决方案,但应该工作几百行。

Powershell 非常强大,因此您可以从中调用您的代码,并将数据传递给它。不仅是字符串,还有模式复杂对象。

编辑:

这个 Powershell 脚本谈论从 Excel 读取,但很可能您可以对 OleDB 执行任何命令,因此它也可以插入到 Excel 中。

编辑2:

只需直接从 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'

于 2012-06-23T21:23:53.643 回答