我在运行以下VB脚本时遇到问题,无法在我的SSIS包中创建新目录。它应该创建以下新路径D:\ customers \ documents \ orders \ 20171205。
Public Sub Main()
'set dir path
Dts.Variables("var_DirPath").Value =
"D:\customers\documents\orders\" + Date.Today.Year.ToString +
Date.Today.Month.ToString + Date.Today.Day.ToString
Dts.TaskResult = ScriptResults.Success
End Sub
脚本任务编辑器的ReadWriteVariables配置为User:var_DirPath。变量的值为“D:\ customers \ documents \ orders \”
文件任务已配置为
UseDirector/Exists = True
Operation = Create directory
IsSourcePathAvailable = True
Source variable = User:var_DirPath
它在调试期间在包中解析,但我不知道为什么这个简单的脚本不起作用。
感谢任何帮助。
答案 0 :(得分:0)
我不确定为什么你不会看到任何日期子文件夹但该代码还有其他问题。例如,1月11日和11月1日将生成相同年份的相同文件夹名称。试试这个:
Dts.Variables("var_DirPath").Value = String.Format("D:\customers\documents\orders\{0:yyyyMMdd}", Date.Now)
这比连接更好,格式确保所有日期的唯一文件夹名称。
答案 1 :(得分:0)
您必须确保正确键入变量名称,因为名称区分大小写。您也可以使用Date.Now.ToString("yyyyMMdd")
而不是连接日期部分。
Public Sub Main()
'set dir path
Dts.Variables("var_DirPath").Value =
"D:\customers\documents\orders\" & Date.Now.ToString("yyyyMMdd")
Dts.TaskResult = ScriptResults.Success
End Sub
还要确保将文件系统任务Delay Validation
属性设置为True
顺便说一句,您可以使用表达式实现此目的,只需转到变量列表,单击变量var_DirPath
,按F4显示属性选项卡,将Evaluate as expression
属性设置为{{1单击True
属性并使用以下表达式:
Expression