これを試して :-
はForeach Loop
ソース フォルダーを列挙し、パスは変数に格納されます。正規表現を使用してフォルダ名を取得するscript task
コードを記述します。スクリプト タスクの値は、別の変数に格納されます。File System Task
パッケージデザインは
上記のDestLoc
変数の式で、場所に応じて変更します
- ForEach ループ構成
必要に応じてソース フォルダーの場所を変更します。
例
LoopFiles
変数はD:\ForLoop\SampleFolder1.txt
実行時に
したがって、上記の変数からフォルダー名を抽出するには、正規表現を使用します
次のコードを開いEdit Script
て記述します
List<string> filePatterns = null;
public void Main()
{
filePatterns = new List<string>();
filePatterns.Add("Folder1");
filePatterns.Add("Folder2");
string fileName = Path.GetFileNameWithoutExtension(Dts.Variables["User::LoopFiles"].Value.ToString());
Match match = Regex.Match(fileName, string.Join("|", filePatterns.ToArray()));
Dts.Variables["User::FolderName"].Value = match.Value;
Dts.TaskResult = (int)ScriptResults.Success;
}
上記のコードでは、フォルダー名を抽出して変数に保存しています。あるFolderName
場合は、コレクション変数multiple folders
に追加するだけです。folder names
filePatterns