我正在使用SSIS将文件从一个文件夹移动到另一个文件夹。为此,我正在使用Foreach循环和脚本任务。现在,我想添加“数据流任务”,它将创建一个excel目标,该目标将读取传输到我的目标文件夹的所有文件名。我为此使用了脚本组件和Excel目标,但是我无法使代码正常工作。
Sub Main()
Dts.Variables("FileName") = IO.Path.GetFileName(Dts.Variables("FileName").Value.ToString())
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
使用此代码,我收到一个错误“验证错误发生”。
答案 0 :(得分:0)
这是您在脚本任务中正在执行的所有代码吗?在脚本任务中,您是否要将变量传递到脚本任务参数框中?
不能像下面那样使用.Value来分配变量。您需要确保在选项框中将其设置为读/写变量。
不确定为什么/为什么要将变量设置为相同的变量值(仅具有FileName),而该变量值应该是不同的变量名。
Dts.Variables("FileName").Value = IO.Path.GetFileName(Dts.Variables("FileName").Value.ToString())
此外,您不需要脚本任务即可执行此操作。在for每个循环中,您可以通过多种方法仅获取文件名,而无需获取变量路径。它是for每个循环中的选项之一:在“收集”选项卡下,有一个“检索文件名”,为完全限定(全名/路径)的名称和扩展名(这是我认为您在上面试图完成的工作)或只是“仅名称”。
如果您选择名称和扩展名,我认为这就是您要做的全部事情了