2011年7月29日金曜日

標準アクティビティだけで BAT ファイルを置換(4)

今回は BAT ファイルでどうこうしようとした場合に結構困る事の一つ、「今日の日付をファイル名に利用する」というのをワークフロー上で実現してみます。
BAT ファイル上でシステム日付を利用する場合は、一手間というか色々と小難しい書き方を利用します。

   1: echo 'サンプルデータ' > %date:~-10,4%%date:~-5,2%%date:~-2,2%.txt

このような感じで環境変数の date を利用して日付をファイル名に利用します。一度書いてしまえば気にならないかもしれませんが、この状態ではかなり人を選びます。少しわかりやすくするためにも、これをプログラミングで記述してみることにします。

   1: Dim dateString As String = Now.ToString("yyyyMMdd")
   2: System.IO.File.WriteAllText("d:\" + dateString + ".txt", "サンプルデータ")

大体このようなロジックになる事と思います。これと同様の処理をワークフロー上で利用する場合は、上記コーディングイメージの通りにアクティビティを利用します。

datestrings1a

全体的な配置としてはこのような形になります。用意した変数に対して Assign アクティビティで現在日付を文字列化して設定しています。そこで取得できた日付を元に、InvokeMethod アクティビティにて System.IO.File クラスの WriteAllText メソッドを呼び出します。

datestrings1

WriteAllText メソッドでは引数を設定して呼び出す必要がありますので、その部分をプロパティダイアログ側から設定します。

datestrings2

InvokeMethod アクティビティの Parameters プロパティの設定ボタンをクリックすると、このようなダイアログが表示され、メソッドを呼び出す際の引数設定が行えます。その設定において、先に取得しておいた現在日付を設定してある変数 dateStrings を利用するような記述を行っています。

このような記述をすることで、標準アクティビティだけでも日付をファイル名として利用するなど、BAT ファイルにて行っているような処理と同じように、そして見た目にわかりやすい形で行う事ができます。

0 件のコメント:

コメントを投稿