从文件名提取子字符串并将其保存到SSIS中的变量

时间:2018-07-30 16:46:46

标签: c# ssis

我无法提取文件名并将其保存到SSIS中的变量中。我试图保存文件名的子字符串,只要且仅当它与VIn中的regex中的模式匹配时。

例如:

EIRSRequest_INC9999999.csv //这应提取INC9999999并将其保存到VIn变量

public void Main()
{
    String source = @"F:\";
    //String destination = @"F:\";
    Regex regex = new Regex(@"EIRSRequest_(?<val>[a-zA-Z0-9]{1,})");
    DirectoryInfo di = new DirectoryInfo(source);
    //FileInfo fi = new FileInfo(di.GetFiles);

    foreach (FileInfo fi in di.GetFiles())
    {
        var match = regex.Match(Path.GetFileNameWithoutExtension(fi.Name));

        if (match.Success)
        {
            //Console.WriteLine(match.Groups["val"].Value);

               Dts.Variables["User::vIn"].Value= match.Groups["val"].Value;
            //Console.WriteLine(ticket);

            //File.Move(source + "\\" + fi.Name, destination + "\\" + fi.Name);
            //Console.WriteLine("This is a new line");

            break;
        }
    }

    Dts.TaskResult = (int)ScriptResults.Success;
}

1 个答案:

答案 0 :(得分:0)

要更新SSIS脚本任务变量,应将该变量设置为“读/写”变量。

enter image description here

将变量添加到ReadWriteVariables并检查。

您也应该可以看到官方的docs

  

用逗号分隔的现有变量列表,用户可以使用该目录包进行读写访问。