SSIS通过执行进程任务将所有文件复制到变量目标中

时间:2016-07-20 21:37:54

标签: ssis

我已经阅读了几篇提供类似流程示例的帖子。 我已经花了很多时间来完成这项工作,所以我真的想让这个工作,所以我可以把所有这些时间都放到"我学会了一些类别" 但如果它不可能......我想我至少会学到这一点。

我想使用ssis 2008r2将文件夹中的所有文件复制到另一个文件夹。 - 使用执行流程任务 - 在可执行文件字段中使用C:\ Windows \ System32 \ cmd.exe - 目标文件夹是我想要使用starttime变量创建的变量 - 它正在工作 - 然后我想将所有工作文件复制到该文件夹​​中。    - 这个dest文件夹使用开始时间到第二个,所以我可以捕获每次尝试的运行,只有最小的错误或覆盖

有了这么多的尝试和失败,我把它简化为使用直接字符串变量来尝试以最简单的方式移动所有文件仍然使用变量。 我目前在多次失败尝试中使用的变量是......

[user::testtofolder] = p:\Utilities\SWUMOps\Archive\20160720-0921-03-SAWSImports
[user::testtofolder1] = p:\\Utilities\\SWUMOps\\Archive\\20160720-0921-03-SAWSImports
[user::testtofolder2] =  p:\\Utilities\\SWUMOps\\Archive\\20160720-0921-03-SAWSImports

以下是我在参数字段

中尝试过的一些尝试
/c copy /y p:\utilities\swumops\backend\saws p:\utilities\swumops\archive\20160720-0921-03-sawsimports  -- works (no variables)

/c copy /y p:\utilities\swumops\backend\saws + @[user::testtofolder]  --  fails

"/c copy /y \"p:\utilities\swumops\backend\saws\" + @[user::testtofolder]  --  fails

"/c copy /y \"p:\utilities\swumops\backend\saws\"" + @[user::testtofolder] -- fails

"/c copy /y \"p:\utilities\swumops\backend\saws \"" + @[user::testtofolder]  -- fails

"/c copy /y \"p:\\utilities\\swumops\\backend\\saws \"" + @[user::testtofolder]  --fails

/c copy /y p:\\utilities\\swumops\\backend\\saws + @[user::testtofolder]  --fails

"/c copy /y \"p:\\utilities\\swumops\\backend\\saws \" + @[user::testtofolder]  --fails    feel this is the closest

"/c copy /y \"p:\\utilities\\swumops\\backend\\saws \" + @[user::testtofolder1]  -- fails

"/c copy /y \"p:\\utilities\\swumops\\backend\\saws \" + @[user::testtofolder2] -- fails

令人沮丧的是,我无法(不知道如何)看到真正传递给cmd的内容,因为窗口闪烁得很快而且错误只读取了参数中的行字段不是过去的字符串。错误看起来像这样......

错误:0xC0029151 at Copy files to archive,Execute Process Task:In Executing" C:\ Windows \ System32 \ cmd.exe" "" / c copy / y \" p:\ utilities \ swumops \ backend \ saws \" + @ [user :: testtofolder]" at"",流程退出代码为" 1"而预期的是" 0"。

希望我提供足够的细节。如果您需要更多,请告诉我。 谢谢

2 个答案:

答案 0 :(得分:0)

在SSIS文件系统中,任务应该是一种更简单的方法来执行任务。我不确定你怎么需要使用命令行来移动/复制文件。

对于您的问题,我认为您需要使用xcopy.exe而不是cmd.exe。可执行文件应为“C:\ Windows \ System32 \ xcopy.exe”,参数应类似于

" /y p:\utilities\swumops\backend\saws " + @[user::testtofolder]

希望它有所帮助。

答案 1 :(得分:0)

感谢您的关注,它帮助我在别处寻找我的问题。我之前没有使用任务的表达式区域。 iNoob。我研究的所有地方都说格式化的行放在参数中。这就是我放置它的地方,直接放在参数行中......不是在表达式窗口中添加参数行。第一个简单的测试工作。所以我想我现在会好起来的。
我很感激你们把它带到了我需要的地方!