我正在使用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
答案 0 :(得分:1)
在定义了 ReadOnlyVariables 和/或 ReadWriteVariables 之后,您可以将客户变量传递到标签脚本中的[任务脚本]全球变量;看看here
更详细:
要向项目中添加变量,您可以选择Package中左上角的[Variables]选项卡,而不是insert requirend字段:
可以将变量添加到[任务脚本]中,方法是将它们选为ReadOnlyVariables和/或ReadWriteVariables:
所以你可以在[任务脚本]中使用声明:
的 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"))