大量のファイルを処理したい

形式が同じファイルが大量にあります。
どのファイルにも同じ処理をしなければならないのですが、
1つ1つ開いて作業を実行するのは大変です。
よい方法はありませんか。
ファイルを操作するUWSCの関数を使い、同じ処理を適用させましょう。

UWSCには、ファイルを開く関数、書き込む関数、
ある階層にあるファイルを取得する関数が用意されています。

それらを組み合わせる事で処理を実現することができます。

例えば、100個の連番の名前を持つファイルがあり、
中には、作成時の日時が書き込まれているとします。

そのファイルのすべてに対して、
末尾に現在時間と更新者の名前を記入する処理をしてみましょう。

1つ1つファイルを開き、現在時間を書き込み、
更新者の名前を記入し保存する。

このような処理を手作業で行うのは骨が折れますのでUWSCの出番です。

事前準備

まずは下準備として、以下のスクリプトを実行し、
ファイルを100個作ります。

 DOSCMD("mkdir .\myUWSC")
FOR A = 101 TO 200
 DOSCMD("echo %date% %time% > .\myUWSC\" + A + ".txt")
NEXT
 EXEC("EXPLORER .\myUWSC")
 MSGBOX("ファイルを「myUWSCフォルダ」に100個作成しました。フォルダを開きます。")

スクリプト

これで、myUWSCフォルダに100個のファイルが作成されました。
それでは、このファイルを開き、
末尾に現在時間と更新者の名前を記入し保存する処理を行います。



スクリプトは以下のようになります。

DIR = INPUT("処理をするフォルダを入力して下さい",".\myUWSC")
UPD = INPUT("更新者の名前を入力して下さい","Kobayashi")
NUM = GETDIR(DIR)
FOR A = 0 TO (NUM - 1)
 ID = FOPEN(DIR + "\" + GETDIR_FILES[A],F_READ or F_WRITE)
 GETTIME()
 NOW = G_TIME_YY + "/" + G_TIME_MM + "/" + G_TIME_DD + " " + G_TIME_HH + ":" + G_TIME_NN + ":" + G_TIME_SS + "." + G_TIME_ZZ
 FPUT(ID,NOW + "<#CR>" + UPD)
 FCLOSE(ID)
NEXT


続きは、ログインもしくは、登録してください



このページの先頭へ