2013-08-27 28 views
0

我需要處理文件夾中的所有文件。 是這樣的:在n如何使用變量在foreach循環容器中查找?

fileprocess.exe -argument_n filename_n 

每個參數

foreach循環是特定的文件,將被從表中檢索。 需要設計ssis包來批處理文件。對於它來說,foreach循環似乎很完美。

我想用查找變換來檢索相應的參數。 我的問題是

  • 如何將變量@[user::filename]餵給查找變換?
  • 如何將查找輸出分配到@[user::argument]
  • 想知道查找變換是否正確使用?

非常感謝!

+1

'fileprocess.exe'是一個真正的可執行文件,或者你只是試圖證明你使用了文件的內容嗎?當它讀取時,您正在將數據流組件(查找轉換)與控制流任務(Foreach枚舉器)混合。 – billinkc

+0

你是對的!查找變換與控制流無關。 – Lao9

回答

1

假設你有一個包含文件名和相應的參數列的表格,來實現您的要求的一個方法是如下:

  1. 從下圖的控制流添加成分。
  2. 在Foreach循環中,枚舉器設置爲Foreach File Enumerator。這些文件是從文件夾中讀取的,但您可以使用任何類型的枚舉器。
  3. 在Loop的範圍內創建2個變量來保存文件名和參數,例如fnamefarg。在Foreach循環編輯器的集合選項卡中,將索引0分配給變量fname
  4. 在執行SQL任務中,編寫一個查詢以檢索給定文件名的參數。分配變量fname作爲輸入參數,將Result Set設置爲單行,並將結果分配給變量farg
  5. 在執行進程任務中,傳遞變量fnamefarg作爲可執行文件的參數。 Control Flow Task
+0

非常感謝!執行sql任務是我需要的!其實我有2個參數:farg1和farg2。我可以在一個選擇中獲得他們。那麼如何分配結果集變量(s)? – Lao9