8.5.22 SplitFile (ファイルを分割する)
- 機能
-
ファイルを指定されたサイズで分割します。
JP1/Script 07-50以降では,ラージファイルが使用できます。
- 形式
SplitFile ( FilePath , SplitSize , 〔DirPath〕 , 〔Option〕 〔, SplitCnt〕 )
- 指定項目
-
- FilePath
-
分割するファイルのフルパスを文字列,または値を格納した変数名で指定します。
- SplitSize
-
分割するサイズを数値,または値を格納した変数名で指定します。サイズはバイト単位で指定します。
ラージファイルでも,分割するサイズの最大値は,2,147,483,647バイトです。
- DirPath
-
分割したファイルを格納するフォルダ名を文字列,または値を格納した変数名で指定します。
この値は省略できます。省略した場合,FilePathで指定されたファイルが存在するフォルダを仮定します。
- Option
-
オプションを指定します。
この値には次の値を指定できます。
値
意味
Delete
ファイルを分割後,FilePathで指定されたファイルを削除します。
- SplitCnt
-
分割したファイル数を受け取る変数名を指定します。必要がない場合は省略します。
- 説明
-
指定されたファイルを指定されたサイズで分割し,分割したファイルを指定されたフォルダに格納します。コマンドが正常に実行された場合は真(True)を,エラーが発生した場合は偽(False)を,コマンドの実行結果として返します。
分割したファイルのファイル名はFilePathで指定されたファイル名の末尾に拡張子.XXX(XXXは001からの数字で,999を超えた場合1000からの数字)を付加した値になります。
- 補足
-
-
環境変数ProgramFiles(通常はシステムドライブのProgram Filesフォルダ),またはWinDir(通常はシステムドライブのWindowsフォルダ)に設定されているフォルダ下のファイル,またはフォルダを指定する場合,注意が必要です。詳細は,「1.8.2 コマンドの動作」を参照してください。
-
分割したファイルにアクセス権限を設定できます。設定するアクセス権限は,あらかじめ次に示すレジストリキーに設定しておいてください。
- 〔レジストリキー〕
-
HKEY_LOCAL_MACHINE\SOFTWARE\Hitachi\JP1/Script\SPTX\Option
- 〔値名〕
-
SecurityAttributesSucceed
- 〔値のデータタイプ〕
-
REG_DWORD
- 〔値〕
-
0:設定しない
1:「上位フォルダのアクセス権を継承する」を設定する。
2:「Everyone:フルコントロール」を設定する。
値が設定されていない場合や上記以外の値が設定された場合は,デフォルトの0を仮定します。
- 〔設定が有効になるタイミング〕
-
スクリプトファイルの次回実行時
-
- 例
' ファイル"C:\FDCOPY.TXT"を1.44MBのFDに格納できるように '分割して,FDに格納する。 ' (参考)1.44MBのFD = 1423KB = 1423 * 1024B ' 1.25MBのFD = 1221KB = 1221 * 1024B ' 720KBのFD = 713KB = 713 * 1024B ' 640KBのFD = 640KB = 640 * 1024B Dim file1 ,size1 ,splCnt ,filePath file1 = "FDCOPY.TXT" size1 = 1423 * 1024 SplitFile ( "C:\"+file1 ,size1 ,_TEMP_ , ,splCnt ) Dim cnt1 ' 分割したファイル数分,FDを作成する For cnt1 = 1 To splCnt filePath = _TEMP_+file1 Select Case Len ( cnt1 ) Case 1 filePath = filePath+".00"+cnt1 Case 2 filePath = filePath+".0"+cnt1 Case Else filePath = filePath+"."+cnt1 End Select ' 一時ファイルをFDへコピー Copy ( filePath ,"A:\" ,Overwrite ) If splCnt - cnt1 <= 0 Then MessageBox ( "FDへの複写が終了しました。" ,OK ) Exit For End MessageBox ( cnt1+1+"枚目のFDに交換してください。" ,OKCancel ) If _MSG_RTN_ = Cancel Then Exit For End Next
- 対象バージョン
-
JP1/Script 05-10以降