【发布时间】:2017-05-30 16:55:14
【问题描述】:
首先,我不是 c# 人,所以请多多包涵。 我需要在 SSIS 中的脚本任务上将出现的“D:”替换为“d$”。我确实使用替换功能来做到这一点,但问题是,这对另一行产生了意想不到的后果。
例如,脚本任务发送一封电子邮件,电子邮件的标题为 \servername\d$ \further_path。邮件正文为“UID: 1 : MESSAGE”
发送电子邮件的代码行如下:
myHtmlMessage = new MailMessage(Dts.Variables["MailFromAddress"].Value.ToString(), Dts.Variables["MailRecipients"].Value.ToString(), Dts.Variables["MailSubjectSuccess"].Value.ToString(), Dts.Variables["MailBodySuccess"].Value.ToString().Replace("D:", @"\d$ "));
我得到的当前输出是:
Server Start Time: 3/21/2017 7:25:33 AM
Server End Time: 3/21/2017 7:27:39 AM
Total Run Time: 00:02:06.9402516
Log Folder: \\ServerNamed$\Apps\SSIS\Logs\
UId$ 2 -
预期的输出是:
Server Start Time: 3/21/2017 7:25:33 AM
Server End Time: 3/21/2017 7:27:39 AM
Total Run Time: 00:02:06.9402516
Log Folder: \\ServerNamed$\Apps\SSIS\Logs\
UID: 2 -
查看日志文件夹行和 UID 行
当我使用替换功能时,身体线也会受到 d$ 符号的影响,这就是我想要避免的。我可以在 C# 中编写一个条件 REPLACE 函数吗,或者有没有其他方法来处理这个问题?
谢谢, 房车。
【问题讨论】:
-
能否添加您的代码
-
添加到问题
-
能否请您也添加输入和输出字符串示例(预期和接收)․你的问题不完全可以理解
-
您有示例输入体吗?我提供的示例没有处理 D: 在一个单词中(例如,正则表达式解析器无法识别“\\ServerNameD:\foo”)。
-
从技术上讲,没有这样的输入体。所有变量值都是从包中动态收集的。但是只需要在 Log 文件夹行中将 D: 替换为 d$,而不是在整个正文中的其他位置。
标签: c# ssis script-task