我的第一个任务是文件系统任务。此任务创建一个文件夹。现在,我无法弄清楚如何在文件系统任务创建的文件夹中创建空白文本文件。
我创建了2个变量 - mypath
(c:\ sample \ files)和myfilename
(test.txt)。
我创建了新的文件连接,并从使用类型和文件中选择了创建文件选项:我已经提供了@[user::mypath] + @[user::myfilename]
。
但我收到的错误是:
包验证错误。
有人可以帮助我如何创建新的文本文件吗?
答案 0 :(得分:7)
最简单的方法是使用执行流程任务。您将使用的进程是cmd.exe这是命令行。从那里你将生成一个新实例并终止/c
,你将在那里运行echo
命令。我们将指定echo off
以便不打印任何内容。我们将使用标准输出重定向运算符>
命令行调用看起来像
C:\Users\billinkfc>cmd.exe /C echo off > \tmp\tmp\t2.txt
我创建了两个变量
第一个,CurrentFileName,包含我想要创建的路径。 C:\ ssisdata \ so_32748216.txt
第二个使用表达式来构建InputParameters变量的值。 "/C echo off > " + @[User::CurrentFileName]
您为第一个变量填写正确的值,或者在运行时设置它,第二个变量将在该位置创建一个空文件。
在控制流上添加执行流程任务。像这样配置
在“表达式”选项卡中,指定参数为@ [User :: InputParameters]。这可确保如果您更改了CurrentFileName的值,则任务会随之更改位置。
商业智能标记语言Biml是每个人都在做SSIS应该知道的事情。原因有很多,但在这种情况下,这是因为以下代码将为您创建一个SSIS包,其中包含上述变量以及执行流程任务 - 这有多酷?
您需要做的就是为您的visual studio / bid / ssdt-bi版本安装bids helper。在集成服务项目中,右键单击项目并选择Add new biml file。粘贴以下内容然后右键单击并选择Generate SSIS Package。
运
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
<Package Name="so_32748216">
<Variables>
<Variable DataType="String" Name="CurrentFileName">c:\ssisdata\so_32748216.txt</Variable>
<Variable DataType="String" Name="InputParameters" EvaluateAsExpression="true"><![CDATA["/C echo off > "]]> + @[User::CurrentFileName]</Variable>
</Variables>
<Tasks>
<ExecuteProcess
Executable="C:\Windows\System32\cmd.exe"
Arguments="/C echo off > OverrideViaExpression.txt"
Name="EPT Create file">
<Expressions>
<Expression ExternalProperty="Arguments">@[User::InputParameters]</Expression>
</Expressions>
</ExecuteProcess>
</Tasks>
</Package>
</Packages>
</Biml>
答案 1 :(得分:0)