HELP

共通マクロ書式

ファイルシステム書式

NAME ファイル削除
FORMAT {%DELETE_FILE(ファイル名)}

ファイル名に指定されたファイルを削除します。ファイルが存在しない場合は何もしません。

戻り値にファイル名を返却します。

ファイル削除はスケジューラーの設定次第で指定フォルダ以下のファイルをすべて削除してしまうような危険な処理になる可能性があります。

基本的には、処理済みファイルは削除せず、移動する設定にしてください。

ファイルの繰り返しの対象ファイルを削除する処理をどうしても作成する必要がある場合は、条件分岐パネルで条件を指定してください。

以下の様に監視対象のファイルが対象のフォルダであるかを判断するなどの条件を必ずつけてください。

{%IF({%GET(FolderPath)}={%GET_G(TopFolder)}\入力,
  {%DELETE_FILE({%GET(FullPathFileName)})}
,)}
例1
「D:\Test\File01.tif」ファイルを削除する。
{%DELETE_FILE(D:\Test\File01.tif)}
NAME フォルダ削除
FORMAT {%DELETE_FOLDER(フォルダ名)}

フォルダ名に指定されたフォルダを削除します。フォルダが存在しない場合は何もしません。

フォルダの中が空の場合のみ削除します。

戻り値にフォルダ名を返却します。

フォルダの中にファイル又はフォルダが存在する場合はエラーとなります。

例1
「D:\Test」フォルダを削除する。
{%DELETE_FOLDER(D:\Test)}
NAME フォルダ作成
FORMAT {%CREATE_FOLDER(フォルダ名)}

フォルダ名に指定されたフォルダを作成します。上位から順番に存在しないフォルダを作成していきますので、パスで指定された全てのフォルダを一度に作成できます。

マクロの戻り値に引数で渡されたフォルダパスを返却します。

例1
「C:\Home\test\abc」フォルダを作成する。
{%CREATE_FOLDER(C:\Home\test\abc)}
例2
「C:\Home\test\abc」フォルダを作成してフォルダパスをログ出力する。
{%WRITE_LOG({%CREATE_FOLDER(C:\Home\test\abc)})}
NAME ファイル存在チェック
FORMAT {%EXISTS_FILE(ファイル名)}

ファイル名に指定されたファイルが存在するかチェックします。ファイルが存在する場合はTrueを返却し、存在しない場合はFalseを返却します。

例1
「D:\Test\File01.txt」ファイルの存在チェックを行う。
{%IF({%EXISTS_FILE(D:\Test\File01.txt)}=True,MSGBOX(あり),MSGBOX(なし))}
NAME フォルダ存在チェック
FORMAT {%EXISTS_FOLDER(フォルダ名)}

フォルダ名に指定されたフォルダが存在するかチェックします。フォルダが存在する場合はTrueを返却し、存在しない場合はFalseを返却します。

例1
「D:\Test」フォルダの存在チェックを行う。
{%IF({%EXISTS_FOLDER(D:\Test)}=True,MSGBOX(あり),MSGBOX(なし))}
NAME ファイルコピー
FORMAT {%COPY_FILE(コピー元ファイル名,コピー先ファイル名[,コピー先ファイル存在時の処理(SeqNo|Overwrite|DoNothing|Error)][,コピー先タイプ指定(File|Folder)])}

ファイルをコピーします。

コピー先のフォルダが存在しない場合は自動で作成します。

コピー元ファイル名が空文字の場合は何も処理を行いません。

コピー先ファイル存在時の処理は、以下の何れかを指定します。省略時はファイル名の末尾に連番を付与します。

SeqNo [既定値] ファイル名の末尾に連番を付与する。(例 Test.xdw -> Test_0001.xdw)
Overwrite ファイルを上書きする。
DoNothing 何もしない。
Error エラーとする。

コピー先タイプ指定は、ファイル名(File)、フォルダ名(Folder)の何れかを指定します。省略するとファイル(File)になります。コピー先のパスにフォルダ名を指定した場合は、コピー先タイプ指定に「Folder」を指定してください。コピー元のファイル名と同じファイル名でコピーを行います。

マクロの戻り値に、コピー先ファイルのフルパスが返却されます。

例1
「D:\Test\File01.txt」ファイルを「D:\Test\控え\File01.txt」にコピーします。(同名のファイルがある場合は連番付与する。)
{%COPY_FILE(D:\Test\File01.txt,D:\Test\控え\File01.txt)}
例2
「D:\Test\File01.txt」ファイルを「D:\Test\控え\File01.txt」にコピーします。(コピー先ファイル名省略)
{%COPY_FILE(D:\Test\File01.txt,D:\Test\控え,,Folder)}
例3
「D:\Test\File01.txt」ファイルを「D:\Test\控え\File01.txt」にコピーします。(同名のファイルがある場合は上書きする。)
{%COPY_FILE(D:\Test\File01.txt,D:\Test\控え\File01.txt,Overwrite)}
NAME 複数ファイルコピー
FORMAT {%MULTI_COPY_FILE(コピー元ファイル名,コピー先ファイル名,回数)}

ファイルを回数で指定された数分コピー(複製)します。コピー先ファイル名には[No]という文字を含ませてください。実行時に[No]が番号に置換されます。

コピー先に既に同名のファイルが存在する場合は、エラーが発生します。

例1
「D:\Test\File.txt」ファイルを「D:\Test\控え」に3回コピー(複製)します。コピー先のファイル名は、「File1.xdw、File2.xdw、File3.xdwとなります。」
{%MULTI_COPY_FILE(D:\Test\File.txt,D:\Test\控え\File[No].txt,3)}
NAME ファイル移動
FORMAT {%MOVE_FILE(移動元ファイル名,移動先ファイル名[,移動先ファイル存在時の処理(SeqNo|Overwrite|DoNothing|Error)][,移動先タイプ指定(File|Folder)][,移動方式(CopyDelete|Move)])}

ファイルを移動します。

移動先のフォルダが存在しない場合は自動で作成します。

移動元ファイル名が空文字の場合は何も処理を行いません。

移動先ファイル存在時の処理は、以下の何れかを指定します。省略時はファイル名の末尾に連番を付与します。

SeqNo [既定値] ファイル名の末尾に連番を付与する。(例 Test.xdw -> Test_0001.xdw)
Overwrite ファイルを上書きする。
DoNothing 何もしない。
Error エラーとする。

移動先タイプ指定は、ファイル名(File)、フォルダ名(Folder)の何れかを指定します。省略するとファイル(File)になります。移動先のパスにフォルダ名を指定した場合は、移動先タイプ指定に「Folder」を指定してください。移動元のファイル名と同じファイル名で移動を行います。

移動方式にファイル移動(Move)を指定した場合は、通常のファイル移動APIを使用します。省略するとファイルコピー後削除(CopyDelete)になり、ファイルコピーを行った後に、コピー元ファイルを削除する方式でファイル移動を行います。

ファイルシステムのAPIでは、同一ドライブのファイル移動はパスの付け替えだけを行っているので、ファイルの権限が移動元の状態のまま変化しません。ですが、コピーの場合はコピー先フォルダの権限を継承します。

マクロの戻り値に、移動先ファイルのフルパスが返却されます。

例1
「D:\Test\File01.txt」ファイルを「D:\Test\処理済み\File01.txt」に移動します。(同名のファイルがある場合は連番付与する。)
{%MOVE_FILE(D:\Test\File01.txt,D:\Test\処理済み\File01.txt)}
例2
「D:\Test\File01.txt」ファイルを「D:\Test\処理済み\File01.txt」に移動します。(移動先ファイル名省略)
{%MOVE_FILE(D:\Test\File01.txt,D:\Test\処理済み,,Folder)}
例3
「D:\Test\File01.txt」ファイルを「D:\Test\処理済み\File01.txt」に移動します。(同名のファイルがある場合は上書きする。)
{%MOVE_FILE(D:\Test\File01.txt,D:\Test\処理済み\File01.txt,Overwrite)}
NAME ファイル・フォルダの作成日時取得
FORMAT {%GET_CREATION_TIME(ファイル名、又は、フォルダ名)}

指定されたファイル、又は、フォルダの作成日時を取得します。取得される形式は、「yyyy/MM/dd HH:mm:ss」です。

例1
「C:\Test\File01.txt」の作成日時をログに出力します。
{%WRITE_LOG({%GET_CREATION_TIME(C:\Test\File01.txt)})}
NAME ファイル・フォルダのアクセス日時取得
FORMAT {%GET_LAST_ACCESS_TIME(ファイル名、又は、フォルダ名)}

指定されたファイル、又は、フォルダのアクセス日時を取得します。取得される形式は、「yyyy/MM/dd HH:mm:ss」です。

例1
「C:\Test\File01.txt」のアクセス日時をログに出力します。
{%WRITE_LOG({%GET_LAST_ACCESS_TIME(C:\Test\File01.txt)})}
NAME ファイル・フォルダの更新日取得
FORMAT {%GET_LAST_WRITE_TIME(ファイル名、又は、フォルダ名)}

指定されたファイル、又は、フォルダの更新日を取得します。処理中ファイルの更新日の取得は「{%GET(LastWriteTime)}」でも取得できます。

例1
「D:\Test\File01.txt」の更新日を取得します。
{%GET_LAST_WRITE_TIME(D:\Test\File01.txt)}
例2
処理中ファイルのフォルダの更新日を取得する。
{%GET_LAST_WRITE_TIME({%GET(FolderPath)})}
NAME ファイル・フォルダの作成日時変更
FORMAT {%CHANGE_CREATION_TIME(ファイル名、又は、フォルダ名,日時)}

指定されたファイル、又は、フォルダの作成日時を変更します。

例1
「D:\Test\File01.txt」の作成日時を「2012/05/01 00:00:00」に変更します。
{%CHANGE_CREATION_TIME(D:\Test\File01.txt,2012/05/01 00:00:00)}
NAME ファイル・フォルダの更新日時変更
FORMAT {%CHANGE_LAST_WRITE_TIME(ファイル名、又は、フォルダ名,日時)}

指定されたファイル、又は、フォルダの更新日時を変更します。

例1
「D:\Test\File01.txt」の更新日時を「2012/05/01 00:00:00」に変更します。
{%CHANGE_LAST_WRITE_TIME(D:\Test\File01.txt,2012/05/01 00:00:00)}
例2
処理中ファイルのフォルダの更新日時を処理中ファイルと同じ日時に変更する。
{%CHANGE_LAST_WRITE_TIME({%GET(FolderPath)},{%GET(LastWriteTime)})}
NAME ファイル・フォルダのアクセス日時変更
FORMAT {%CHANGE_LAST_ACCESS_TIME(ファイル名、又は、フォルダ名,日時)}

指定されたファイル、又は、フォルダのアクセス日時を変更します。

例1
「D:\Test\File01.txt」のアクセス日時を「2012/05/01 00:00:00」に変更します。
{%CHANGE_LAST_ACCESS_TIME(D:\Test\File01.txt,2012/05/01 00:00:00)}
NAME ファイルサイズ取得
FORMAT {%GET_FILE_SIZE(ファイル名、又は、フォルダ名[,サブフォルダ検索指定(Sub|Current)])}

指定されたファイル、又は、フォルダ内のファイルについて、ファイルサイズの合計値を取得します。

ファイル名にはワイルドカードを使用できます。

サブフォルダ検索指定には、「Sub」又は「Current」を指定します。「Sub」を指定するとサブディレクトリも検索の対象となります。「Current」を指定すると指定したフォルダのみを検索対象とします。省略すると「Current」となります。

例1
「C:\Home\Temp1\upload.zip」のファイルサイズを取得する。
{%GET_FILE_SIZE(C:\Home\Temp1\upload.zip)}
例2
「C:\Home\Temp1」フォルダとその配下のフォルダのすべてのファイルのファイルサイズの合計を取得する。
{%GET_FILE_SIZE(C:\Home\Temp1\*,Sub)}
NAME 空フォルダチェック
FORMAT {%IS_FOLDER_EMPTY(フォルダ名)}

フォルダ名に指定されたフォルダ内にファイル又は、フォルダが存在するかチェックします。存在しない場合はTrueを返却し、存在する場合はFalseを返却します。

例1
「D:\Test」フォルダ内のファイル又は、フォルダの存在チェックを行い、空の場合はフォルダを削除する。
{%IF({%IS_FOLDER_EMPTY(D:\Test)}=True,{%DELETE_FOLDER(D:\Test)},)}
NAME 連番ファイル名取得
FORMAT {%GET_SEQUENCE_FILENAME(ファイル名)}

ファイル名に指定されたファイルが存在するかチェックし、ファイルが存在する場合はファイル名の末尾に連番を付与したファイル名を返却します。

例1
「D:\Test\File01.txt」の存在チェックを行い、存在する場合は末尾に連番を付与したファイル名を取得する。存在しない場合は、引数のファイル名を返却する。
{%GET_SEQUENCE_FILENAME(D:\Test\File01.txt)}

結果 ファイルが存在する場合 D:\Test\File01_0001.txt
NAME ファイル検索(フォルダ検索)
FORMAT {%SEARCH_FILE(フォルダ名,ファイル名,データ名[,サブフォルダ検索指定(Sub|Current)][,フォルダ検索指定(File|Folder)][,検索結果の形式(Full|Name)])}

指定のフォルダからファイル又は、フォルダを検索します。

フォルダ名には、検索するフォルダを指定します。

ファイル名に検索したいファイルを指定します。ファイル名にはワイルドカードが使用できます。;(セミコロン)で区切ることによって複数指定が可能です。

データ名には、検索結果を保存するユーザデータのデータ名を指定します。

サブフォルダ検索指定には、「Sub」又は「Current」を指定します。「Sub」を指定するとサブディレクトリも検索の対象となります。「Current」を指定すると指定したフォルダのみを検索対象とします。省略すると「Current」となります。

フォルダ検索指定には、「File」又は「Folder」を指定します。「File」を指定するとファイルを検索します。「Folder」を指定すると検索対象がファイルではなくフォルダのみとなります。省略すると「File」となります。

検索結果の形式には、「Full」又は「Name」を指定します。「Full」を指定すると検索結果がフルパスで格納されます。「Name」を指定すると検索結果が名前のみで格納されます。省略すると「Full」となります。

検索結果は指定したデータ名のユーザデータに格納されます。1から始まる連番がキーとなり、値にはフルパスファイル(フォルダ)名か、ファイル(フォルダ)名がセットされます。

検索結果に指定したユーザデータは処理前にクリアされます。

例1
「C:\Home\図面」フォルダとその配下のフォルダから、ファイル「X0002.xdw」を検索します。結果は「FileList」という名前のユーザデータに保存します。検索した結果、ファイルが見つかった場合は、「発見!」+見つかったファイル名を表示し、見つからない場合は「見つからない」を表示します。
{%SEARCH_FILE(C:\Home\図面,X0002.xdw,FileList,Sub)}

{%MSGBOX({%IF({%GET_USER_DATA_COUNT(FileList)}>0,発見! {%GET_USER_DATA(FileList,1)},見つからない)})}
例2
「C:\Home\図面」フォルダから、拡張子が「.xdw」のファイルと、拡張子が「.tif」のファイルを検索します。結果は「FileList」という名前のユーザデータに保存します。検索した結果を、見つかったファイルの数だけ繰り返し表示します。
{%SEARCH_FILE(C:\Home\図面,*.xdw;*.tif,FileList,Current)}
{%LOOP L1 {%GET_USER_DATA_COUNT(FileList)}(
  {%WRITE_LOG({%GET_USER_DATA(FileList,[L_IDX(L1)])})}
)}
例3
「C:\Home\営業」フォルダから末尾が伊藤のフォルダを検索します。結果は「FolderList」という名前のユーザデータに保存します。検索した結果はフォルダ名のみで、見つかったフォルダの数だけ繰り返し表示します。
{%SEARCH_FILE(C:\Home\営業,*伊藤,FolderList,Current,Folder,Name)}
{%LOOP L1 {%GET_USER_DATA_COUNT(FolderList)}(
  {%WRITE_LOG({%GET_USER_DATA(FolderList,[L_IDX(L1)])})}
)}
NAME ファイル取得(フォルダ指定・1ファイルのみ)
FORMAT {%GET_ANY_FILE(ファイル名(ワイルドカード),フォルダパス)}

フォルダパスで指定されたフォルダからファイル検索を行い、更新日時の最も古いファイルのパスを返却します。

フォルダパスで指定されたフォルダが見つからない場合は、エラーになります。また、ファイルが1つも見つからない場合は、空文字が返却されます。

例1
「C:\Demo\In」にある更新日時が最も古いXDWファイルを「C:\Demo\Out」に移動する。
{%MOVE_FILE({%GET_ANY_FILE(*.xdw,C:\Demo\In)},C:\Demo\Out,SeqNo,Folder)}
NAME ファイルロック
FORMAT {%LOCK(ファイル名[,リトライ秒数])}

ファイル名に指定されたファイルをロックします。ロックしたファイルはUNLOCKマクロで解除されるか、処理が終了するまでロックされます。指定されたファイルが存在しない場合は新規作成してロックを行います。

ファイルのロックに成功すると「True」が戻り値として返却されます。失敗すると「False」が返却されます。

ファイルがロックされている場合は、リトライ秒数で指定された秒数だけリトライを行います。リトライ秒数を超えてロックされていた場合は、「False」が返却されます。

リトライ秒数を省略するとリトライ秒数は3秒になります。0を指定するとリトライは行いません。-1を指定するとロック解除されるまで無限(メイン画面のキャンセル等で中断できます。)に待ちます。

ロックされたファイルは他のプロセスからロックすることができないので、排他処理を行う場合などに使えます。

ファイルロック後にロック解除マクロを実行しない場合でも、eDocArrangementの処理終了時にロック解除されます。

例1
「C:\temp\lock1.txt」をロックして、「C:\Demo\In」にあるファイルを1つ「C:\Demo\Out」に移動する。移動が終了したら「C:\temp\lock1.txt」のロックを解除する。この処理を複数のプロセスから実行すると「C:\Demo\In」にあるファイルを「C:\Demo\Out」に移動する処理が排他的に処理される。
{%IF({%LOCK(C:\temp\lock1.txt)}=True,
  {%MOVE_FILE({%GET_ANY_FILE(*.xdw,C:\Demo\In)},C:\Demo\Out,SeqNo,Folder)}
  {%UNLOCK(C:\temp\lock1.txt)}
,)}
NAME ファイルロック解除
FORMAT {%UNLOCK(ファイル名)}

LOCKマクロでロックされたファイルをロック解除します。

NAME 共有フォルダのユーザー・パスワード設定
FORMAT {%NET_ADD_CONNECTION(共有フォルダ名,ユーザー名,パスワードファイル)}

認証情報が必要な共有フォルダに接続します。

共有フォルダ名はUNCパスです。

共有フォルダ名は「ホスト名 + 共有名」となりますが、共有フォルダの設定によっては、ホスト名のみを指定する事もできます。

共有フォルダ名に「ホスト名 + 共有名」以下のフォルダが含まれていても構いません。

ホスト名のみ
\\host

ホスト名 + 共有名
\\host\share1

ホスト名 + 共有名 + フォルダ名
\\host\share1\folder1

パスワードファイルには、パスワードを暗号化したファイルを指定します。暗号化したファイルを作成するには、メイン画面のメニューのツールの 暗号ファイル作成ツール を使用します。

このマクロはeDocArrangement 2 Schedulerのメニュー>ツール>設定から設定画面を開き、共通設定の監視開始時マクロに記述することを推奨いたします。

eDocArrangement 2 Schedulerで監視実行した場合はログオン中のデスクトップ全体で有効となり、ログオフするまで継続します。

eDocArrangement 2 サービスで監視実行した場合はサービス実行中のみ有効となります。

例1
共有フォルダ「\\nas01\disk1」のユーザー、パスワード(パスワードファイル「C:\Home\Password\nas01.txt」)を設定する
{%NET_ADD_CONNECTION(\\nas01\disk1,admin,C:\Home\Password\nas01.txt)}
NAME 共有フォルダの切断
FORMAT {%NET_CANCEL_CONNECTION(共有フォルダ名)}

接続中の共有フォルダを切断します。

共有フォルダ名はUNCパスです。

共有フォルダ名は「ホスト名 + 共有名」となりますが、共有フォルダの設定によっては、ホスト名のみを指定する事もできます。

共有フォルダ名に「ホスト名 + 共有名」以下のフォルダが含まれていても構いません。

ホスト名のみ
\\host

ホスト名 + 共有名
\\host\share1

ホスト名 + 共有名 + フォルダ名
\\host\share1\folder1
例1
共有フォルダ「\\nas01\disk1」を切断する。
{%NET_CANCEL_CONNECTION(\\nas01\disk1)}
NAME オープンチェック
FORMAT {%CHECK_FILE_OPEN(ファイル名,リトライ秒数)}

引き数のファイルがオープン可能か調べます。

オープンに成功した場合はTrueを返却します。

オープンに失敗した場合はリトライ秒数で指定された秒数の間、リトライを行います。リトライしてもオープンできなかった場合は、Falseを返却します。

リトライ秒数に0を指定するとリトライは行いません。

例1
現在処理中のファイルがオープンできるか調べる。リトライは行わない。
{%SET_U(属性,判定,{%CHECK_FILE_OPEN({%GET(FullPathFileName)},0)})}
NAME ファイル名取得
FORMAT {%GET_FILE_NAME(フルパスファイル名)}

引数のフルパスファイル名からファイル名を取得します。

例1
ファイル名を取得します。以下の例では「sample01.txt」が出力されます。
{%WRITE_LOG({%GET_FILE_NAME(C:\Test\sample01.txt)})}
NAME フォルダパス取得
FORMAT {%GET_FOLDER_PATH(フルパスファイル名)}

引数のフルパスファイル名からフォルダパスを取得します。

例1
フォルダパスを取得します。以下の例では「C:\Test」が出力されます。
{%WRITE_LOG({%GET_FOLDER_PATH(C:\Test\sample01.txt)})}
NAME フォルダ名取得
FORMAT {%GET_FOLDER_NAME(フォルダパス[,階層番号])}

引数のフォルダパスからフォルダ名を取得します。

例1
フォルダ名を取得します。以下の例では「Test」が出力されます。
{%WRITE_LOG({%GET_FOLDER_NAME(C:\Test\sample01.txt)})}
NAME 拡張子を除いたファイル名取得
FORMAT {%GET_FILE_NAME_WITHOUT_EXTENSION(フルパスファイル名又はファイル名)}

引数のフルパスファイル名又はファイル名から拡張子を除いたファイル名を取得します。

例1
拡張子を除いたファイル名を取得します。以下の例では「sample01」が出力されます。
{%WRITE_LOG({%GET_FILE_NAME_WITHOUT_EXTENSION(C:\Test\sample01.txt)})}
{%WRITE_LOG({%GET_FILE_NAME_WITHOUT_EXTENSION(sample01.txt)})}
NAME ファイル名の拡張子取得
FORMAT {%GET_EXTENSION_FROM_FILE_NAME(フルパスファイル名又はファイル名)}

引数のフルパスファイル名又はファイル名から拡張子を取得します。

例1
ファイル名の拡張子を取得します。以下の例では「.txt」が出力されます。
{%WRITE_LOG({%GET_EXTENSION_FROM_FILE_NAME(C:\Test\sample01.txt)})}
{%WRITE_LOG({%GET_EXTENSION_FROM_FILE_NAME(sample01.txt)})}