まず第一に、私は ac# の人ではないので、これについてはご容赦ください。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 関数を記述できますか、またはこれに対処する他の方法はありますか?
ありがとう、RV。