UWSCというWindows自動化ツールで、対象フォルダ内の、対象の拡張子のファイルを一括処理する方法です。
具体的な処理ではなく、一括処理の枠組みのご紹介です。
これを使えば、ある拡張子のファイルのみ、一定の処理を行うことができます。
自動化大正義ですね。
一括処理のソース
ソースはこちら。
// 作業対象の対象フォルダパス dim dirPath = "C:\work\" // 作業対象のファイル dim target = "*.txt" // 処理中のファイル名称 dim fileName = "" // 拡張子が[txt]のファイル一覧取得 n = getdir(dirPath, target, FALSE, 0) // 取得した一覧分、ファイルを一括処理 // getdirの結果は「GETDIR_FILES[]」に入る for i = 0 to (length(GETDIR_FILES) - 1) // 処理するファイル名を表示 print GETDIR_FILES[i] // ファイル名を順々に取得 fileName = GETDIR_FILES[i] // ~ ここにやりたい処理を書く ~ next print "おわったよ"
今回は対象のフォルダと拡張子を、決め打ちにしています。
ここは可変になるように設定しておけば、汎用性の高いソースになりそうですね。
まぁフリー版を使っているので、その場に応じてソース書き換えるとかならこれでいい気もしますが。
初期設定
下記2つの変数の値を設定します。
- dirPath:作業対象のフォルダパス
- target:作業対象のファイル
dirPathには、作業対象のパスのフルパスを、最後に「\」を付けてセットしてください。
targetには、作業対象のファイル名を入れてください。
「*」はワイルドカードとして扱われます。
なので、例のように「*.txt」と書くと、拡張子がtxtの全てのファイルが対象となります。
処理を書く場所
「next」の上の「ここにやりたい処理を書く」のコメント箇所に、実際に行いたい処理を書きます。
fileNameを使用して、何かしらの処理を書いてあげることで、対象のファイルを1個順々に処理していってくれます。
ちなみに、分かりやすくするために一旦fileNameに現在のファイル名をセットしていますが、そのままGETDIR_FILES[i]を使ってもOKです。
処理を成功させるコツ
UWSC極められてない勢としての意見ですが……
処理を成功させるコツとして、「キーボードの処理のみで完結するようにする」というのがオススメです。
基本的にショートカットキーで、大半の動作は行えます。
なので、「いかにキーボードで操作できるか?」を考えてみると、処理が成功しやすいと感じました。
昔ブラウザの自動操作マクロを作ろうとして、クリック処理結構うまくいかなくてヤキモキしてたんですよね……
キーボードなら回数打てばいいので、泥臭い処理になっちゃったとしても、確実性が数段上がります。
処理が一通りいけるなら、簡単な手順は
- 記録で操作
- 保存
- スクリプトを調整
スクリプトの調整は、ウェイト時間や無駄な処理等を削ったりするためのメンテです。
これだけで、かなり簡単にスクリプト作れちゃいます。
あとがき
いかがでしたでしょうか?
UWSCは使いこなせば、ホント神がかったツールです。
手軽に動作記録できるのも利点の1つですね。
バックグラウンド処理も可能なはずなので、作業の裏で何かを自動処理……
とか作ったりすると……ヤバいですね。ヤバいです(語彙力)