SSIS - 脚本任务:使用带动态文件路径的VBscript替换文本文件中的TEXT

时间:2016-09-14 14:00:10

标签: vb.net vbscript ssis

我正在使用SSIS脚本任务来替换文本文件中的文本。在我的VB脚本脚本中的硬编码文件路径,但我想改用用户变量。

Const ForReading = 1
Const ForWriting = 2
Dim objFSO, objFile, strText, strNewText

objFSO = CreateObject("Scripting.FileSystemObject")
objFile = objFSO.OpenTextFile("C:\Users\newtons\Desktop\Text.txt", ForReading)

strText = objFile.ReadAll
objFile.Close()
strNewText = Replace(strText, "Jim", "James")

objFile = objFSO.OpenTextFile("C:\Users\newtons\Desktop\Text.txt", ForWriting)
objFile.WriteLine(strNewText)
objFile.Close()
objFSO = Nothing
objFile = Nothing

2 个答案:

答案 0 :(得分:1)

在定义了 ReadOnlyVariables 和/或 ReadWriteVariables 之后,您可以将客户变量传递到标签脚本中的[任务脚本]全球变量;看看here

更详细:
要向项目中添加变量,您可以选择Package中左上角的[Variables]选项卡,而不是insert requirend字段:

enter image description here

可以将变量添加到[任务脚本]中,方法是将它们选为ReadOnlyVariables和/或ReadWriteVariables:

enter image description here

所以你可以在[任务脚本]中使用声明:
Dts.Variables("用户::变量&#34)。值

正如@Matt所说,在线文档省略了' User ::'

答案 1 :(得分:0)

使用@Alex的答案添加和引用变量。但是,如果你使用System.IO,你可以用2行代码完成你的整个脚本。

将其添加到导入部分

Import System.IO

然后在MAIN Sub

中使用这些行
Dim filePath As String = Dts.Variables("User::FullFilePath").Value.ToString()
File.WriteAllText(filePath, File.ReadAllText(filePath).Replace("Jim", "James"))