プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > Proserpine Macro > Commands > file copy, file rename

 
 file copyコマンド、file renameコマンド
Macro Top | Variables | Constants | Commands | Ex-Commands  


 

file copyコマンド


【書式】

file copy:   src=source_file   to=destination_file   ov=overwrite_mode   O:dest=copied_file  

source_file : string, 元のファイル名
destination_file : string, 変更先のファイル名
overwrite_mode : bool, 上書きの有無(省略可、省略時はfalse)
copied_file : string, コピー先のファイル名(省略可)

【概要】

src=で指定したファイルを to=で指定したファイルにコピーします。

overwrite_modetrueを指定すると、 to=で指定されたファイルが既に存在する場合でも強制的に上書きします。

O:dest=で指定した変数には、コピー先のファイル名がフルパスで設定されます。 コピーできなかった場合は空の文字列が設定されます。
ov=trueの場合は to=で指定したファイル名がそのまま設定されますが、 ファイル名メタ定義を含む場合は それが展開されたものになります。
例えば、
  src=str[1] ov=true to="C:\\MyFile\\a[YYYY][MM][DD].jpg" O:dest=str[2];
の様にto=ファイル名メタ定義を含む場合、 [YYYY]、[MM]、[DD] の各ファイル名メタ定義が 年、月、日に展開されて、
  C:\\MyFile\\a20080101.jpg
のファイル名になり、これがO:dest=で指定されたstr[2]に設定されます。

overwrite_modefalseの場合、 to=で指定されたファイルが既にある場合は 自動的に通番付与されたファイル名に変名されます。
通番は2以降になります。 どのようなファイル名に変更されたかは、O:dest=を指定することで取得することができます。

【記述例】

  file copy: src=input[0] to=str[1] ov=true;

  file copy: src="C:\\MyFile\\image\\sample.jpg" to=strl[10] O:dest=strl[11];


 

file renameコマンド


【書式】

file rename:   src=source_file   to=destination_file   ov=overwrite_mode   O:dest=renamed_file  

source_file : string, 元のファイル名
destination_file : string, 変更先のファイル名
overwrite_mode : bool, 上書きの有無(省略可、省略時はfalse)
renamed_file : string, 変更先のファイル名(省略可)

【概要】

src=で指定したファイルを to=で指定した名前に変更します。

to=にはフルパスでファイル名を指定しますが、 移動先ディレクトリのみを指定することもできます (to=で指定されているものが既存のディレクトリであった場合の特例)。
その場合、移動先でのファイル名はsrc=のものを引き継ぎます。

overwrite_modetrueを指定すると、 to=で指定されたファイルが既に存在する場合でも強制的に上書きします。

O:dest=で指定した変数には、リネームしたファイルのファイル名(フルパス)が設定されます。 リネームできなかった場合は空の文字列が設定されます。
ov=trueの場合は to=で指定したファイル名がそのまま設定されますが、 ファイル名メタ定義を含む場合は それが展開されたものになります。
例えば、
  src=str[1] ov=true to="C:\\MyFile\\a[YYYY][MM][DD].jpg" O:dest=str[2];
の様にto=ファイル名メタ定義を含む場合、 [YYYY]、[MM]、[DD] の各ファイル名メタ定義が 年、月、日に展開されて、
  C:\\MyFile\\a20080101.jpg
のファイル名になり、これがO:dest=で指定されたstr[2]に設定されます。

overwrite_modefalseの場合、 to=で指定されたファイルが既にある場合は 自動的に通番付与されたファイル名に変名されます。
通番は2以降になります。 どのようなファイル名に変更されたかは、O:dest=を指定することで取得することができます。

【記述例】

  file rename: src=input[0] to=str[1] ov=true;

  file rename: src="C:\\MyFile\\image\\sample.jpg" to=strl[10] O:dest=strl[11];

  file rename: src="C:\\MyFile\\image\\sample.jpg" to=Dir.Desktop O:dest=strl[11];
  (指定したディレクトリに移動する例)


 

例: ファイル使用中の終了を待ってリネーム


ファイルの編集操作をした直後では、そのファイルが使用中になっていて、 別のファイルをそのファイルにリネームできなくなっていることがあります。
その場合はしばらく待ってから、再度リネームする必要があります。

次の例では、 test.jpg が何らかの処理中で test.jpg.tmp.XXX のファイルを test.jpg にリネームできなかったときは1秒待って (sleepコマンド)、 再度リネームする処理になっています。
ループで最大で10秒間、待っています。それ以上時間がかかる場合は、リネームを諦めています。



【コピペで確認】 上記のサンプルコードは メモ帳モードで開いたテキストフォームにコピー&ペーストして、 テストモード実行で 動作確認することができます。
(デスクトップに test.jpg という画像ファイルを用意してください)

デスクトップにある画像ファイル test.jpg に、「画像に文字を書き込むテスト」という文字を書き込むサンプルです。
画像への文字の書き込みは Ex:Img.Writeコマンド で行います。

書き込んだファイルは、一旦、デスクトップの test.jpg.tmp.XXX というファイルに出力され (XXX の部分は、この例では jpg になります)、 その後、file renameコマンドで test.jpg に上書きしています。


[BACK]
プロセルピナ