我在VS 2015中使用SSIS 2016。
我使用PowerShell(我永远无法让C#按照我的意愿工作)将结果吐出到变量。
这是运行的代码:
$RootFolder = 'C:\DSB_Download'
[string]$Folder = Get-ChildItem $RootFolder | sort Name -Descending|
select -ExpandProperty Name -First 1;
If ([string]::IsNullOrEmpty($Folder))
{
$result = "EmptyFolder";
$result = $result -replace "`t|`n|`r",""
$result = $result -replace " ;|; ",";";}
Else
{$result = $Folder;}
Write-Output $result;
我正在尝试将"EmptyFolder"
的字符串返回到Result变量,然后在脚本任务中使用,其中我正在检查DTS变量(由Powershell变量制作)
c#正在这样做:
string NoFolders = "EmptyFolder";
if (LocalDrive == NoFolders)
{
Dts.Variables["User::WorkingDateString"].Value = WebDrive;
}
因此C#if子句正在寻找字符串"EmptyFolder"
很好,但是当我调试这个时,我注意到保存PowerShell结果的SSIS变量显示如下:
所以字符串最后会显示\r\n
,当然这与c#正在查找和传递的内容不匹配。
正如您所看到的,PowerShell正在尝试替换$result
以删除\r\n
,但它没有做任何事情。
有没有人有任何想法如何摆脱这一点,并让字符串变量完全符合它应该是什么?