←
▼
▲
(src)
Sub copy_ren( SrcPath as string, DstPath as string )
ファイルまたはフォルダーの名前を変えてコピーします。 (copy and rename)
【引数】
SrcPath
DstPath
コピー元のファイル、または、フォルダーのパス
コピー先のファイル、または、フォルダーのパス
SrcPath がファイルなら、DstPath に指定したパスもファイルにしてください。
SrcPath がフォルダーなら、DstPath に指定したパスもフォルダーにしてください。
コピー先にファイルがあっても、上書き確認をユーザーに行わずに、上書きします。
ユーザーには、上書きするフォルダーやファイルのバックアップをとるようにガイド
してください。
フォルダーをコピーするとき、SrcPath のフォルダーと DstPath のフォルダーを
全く同じファイル構成にしたいときは、DstPath のフォルダーを削除してからコピー
してください。
ファイル:
vbslib.vbs
copy_ren "src", "dst"
サンプル
src フォルダーの内容を dst フォルダーの中にコピーします。
または、src ファイルの内容を、dst ファイルの中にコピーします。
関連
参考
サンプル
copy_ren "src", "dst"
copy "src\*", "dst"
上記の2行は、同じ処理です。
src フォルダーの内容を dst フォルダーの中にコピーします。
→ T_Copy.vbs # [T_Copy]
テスト
←
▼
▲
Sub copy_ex( SrcPath as string, DstPath as string, Option_ as integer )
Option_ に指定したように、特殊なコピーをします。
【引数】
SrcPath
DstPath
コピー元のパス。 ワイルドカードが使えます
コピー先のフォルダーのパス
Option_
特殊なコピーの内容
SrcPath に指定したワイルドカード以外の部分をカットしたファイル名になるようにコピーします。
サブフォルダにあるファイルもコピーします。
Dim c : Set c = g_VBS_Lib
copy_ex "src\*_set1.*", "dst", c.CutTag
src フォルダーにある _set1. を名前に含むファイルを、dst フォルダーにコピーします。
ただし、ファイル名の一部にある _set1 はカットされます。
複数のファイルが入ったフォルダが複数あって、それらを上書きコピーして合成したフォルダから、
元の1つのフォルダを取り出すようなコピーができます。
src フォルダ
file1_set1.txt
file1_set2.txt
file2_set2.txt
file2_set1.txt
file2.txt
dst フォルダ
file1.txt
コピー先に同じ名前のファイルがあるファイルだけ、コピーします。
(src)
Set c = g_VBS_Lib
copy_ex "src\*", "dst", c.ExistOnly
file1.txt
dst フォルダ
file3.txt
file3.txt
file4.txt
file2.txt
file1.txt
src フォルダ
参考
_set1
file1.txt と file3.txt だけコピーします。
→ T_CopyEx.vbs
テスト
→ T_CopyEx.vbs
テスト
関連
ファイル:
vbslib.vbs
関連
Set c = g_VBS_Lib
copy_ex "src\*", "dst", c.MakeShortcutFiles
sub\file1.txt
sub\file1.lnk
dst フォルダ (新規作成)
file1.lnk
file1.txt
file2.txt
src フォルダ
file2.lnk
コピー先にコピー元のそれぞれのファイルへのショートカットを作成します。
コピー先に同じ名前のファイルや空フォルダーがないファイルだけ、コピーします。
Set c = g_VBS_Lib
copy_ex "src\*", "dst", c.NotExistOnly
file1.txt
dst フォルダ
file3.txt
file3.txt
file4.txt
file2.txt
file1.txt
src フォルダ
file2.txt と file4.txt と EmptyFolder だけコピーします。
→ T_CopyEx.vbs
テスト
→ T_CopyEx.vbs
テスト
T_MakeShortcutFiles
T_CopyNotExists
T_CopyExists
T_CopyTagFiles
EmptyFolder
←
▼
▲
→ T_Wildcard.vbs
テスト
T_PathDictionary_XML_PickUpCopy
→ PickUpCopy1.xml
Function OpenPickUpCopy( in_PathWithID as string ) as OpenPickUpCopyClass
コピーするフォルダーの一部がどこかの情報が書かれた XML を開きます。
【引数】
in_PathWithID
PickUpCopies XML ファイルのパス、または、それと、# と、XML の id 属性
返り値
コピーするフォルダーの一部がどこかの情報が入ったオブジェクト
サンプル
OpenPickUpCopy( "PickUpCopy.xml" ).Copy "Folder1", "OutputFolder", Empty
Set copy_ = OpenPickUpCopy( "PickUpCopies.xml#Example" )
Set w_= AppKey.NewWritable( copy_.GetDefaultOutputPath( Empty ) ).Enable()
copy_.Copy Empty, Empty, Empty
"PickUpCopy.xml"
サンプル
"PickUpCopies.xml#Example"
"Folder1", "OutputFolder"
in_PathWithID 引数に
を指定することもできます。 その場合、最初の PickUpCopy タグ
の内容が使われます。
コピーは上書きコピーを行います。 コピー先にすでにあるファイルが不要なら、削除した後で
コピーしてください。
#Example を指定すると、id 属性の値が Example の PickUpCopy タグの 設定を使います。
#以下を指定しなければ、最初の PickUpCopy タグの 設定を使います。
参考
設定ファイル PickUpCopy.xml の説明
<PickUpCopies>
<Variable name="${FolderPath}" value="Folder1"/>
<Variable name="${ExceptExts}" value="*.ini, ${FolderPath}\B.txt"/>
<PickUpCopy id="Example"
default_source_path="Folder1"
default_destination_path="${SourceFolderName}_cleaned">
<Folder path=".">
<Except path="${ExceptExts}"/>
<Except path="Except"/>
</Folder>
</PickUpCopy>
<PickUpCopy id="2">
<File path="A.txt"/>
<File path="${RegExp(.*\.(txt|c|h))}"/>
</PickUpCopy>
</PickUpCopies>
PickUpCopies タグの名前は変更できます。
で定義した ${ } 変数は、path, default_source_path, default_destination_path
属性から参照できます。
default_source_path, default_destination_path 属性は、
の引数に Empty を指定したときに使われます。
Example
PickUpCopies.xml
スクリプト
OpenPickUpCopy 関数が返した OpenPickUpCopyClass のオブジェクトの
を呼び出しています。
PickUpCopy.xml ファイルに書かれた設定に従って、Folder1 フォルダーの一部から
OutputFolder フォルダーへコピーします。
コールツリー
OpenPickUpCopyClass::Copy
(.vbs)
(.vbs)
PathDictionaryClass_onRegExp
new_PathDictionaryClass_fromXML_Ex
(.vbs)
(.vbs)
LazyDictionaryClass::Me_Expand
(.vbs)
(.vbs)
(.vbs)
LazyDictionaryClass::Me_Call
(.vbs)
PathDictionaryClass::Scan
(.vbs)
(.vbs)
'// ソート「ファイル > \ あり * > \ なし * (拡張子のデフォルト) > フォルダー」
// 正規表現を展開する。
// ファイルを一覧する。
copy_ren
// コピーする。
path 属性に ${RegExp( ... )} を記述すれば、
で複数のファイルを指定できます。
OpenPickUpCopy
(.vbs)
←
▼
▲
の返り値のクラス。
←
▼
▲
Sub OpenPickUpCopyClass::Copy( in_SourcePath as string, in_DestinationPath as string,
in_Empty as Empty )
XML に指定したファイルまたはフォルダーをコピーします。
【引数】
in_SourcePath
in_DestinationPath
コピー元の基準フォルダーのパス、または、Empty
コピー先の基準フォルダーのパス、または、Empty
in_SourcePath 引数に Empty を指定したときは、XML の default_source_path 属性に指定したパス
が使われます。
in_DestinationPath 引数に Empty を指定したときは、XML の default_destination_path 属性に指定
したパスが使われます。
in_Empty
Empty を指定してください
←
▼
▲
フォルダーのパスを返します。
フル パスが返ります。
XML の default_source_path 属性に指定した ${ } 変数が展開された値が返ります。
Function GetDefaultSourcePath() as string
コピー元の基準フォルダーのパスを返します。
の in_SourcePath 引数に Empty を指定したときの、コピー元の基準
←
▼
▲
フォルダーのパスを返します。
フル パスが返ります。
XML の default_destination_path 属性に指定した ${ } 変数が展開された値が返ります。
XML の default_destination_path 属性に指定した ${SourceFolderName} は、
コピー元の基準フォルダーのパスに展開された値が返ります。
Function GetDefaultDestinationPath( in_SourcePath as string ) as string
コピー先の基準フォルダーのパスを返します。
【引数】
in_SourcePath
コピー元の基準フォルダーのパス、または、Empty
返り値
コピー先の基準フォルダーのパス
の in_DestinationPath 引数に Empty を指定したときの、コピー先の基準
←
▼
▲
Sub cat( FilePathss as string or array of string, OutputPath as string )
テキスト・ファイルの内容を連結します。
【引数】
FilePathss
OutputPath
ファイルのパスの配列
連結した内容を格納するファイルのパス
ファイル:
vbslib.vbs
→ T_fc.vbs # [test_in_file]
テスト
(src)
サンプル
Dim out, out1 : out = "log.txt" : out1 = "log1.txt"
del out
r= RunProg( "...", out1 )
cat Array( out, out1 ), out
del out1
out, out1
out
プログラムの出力を out に追加します。
サンプル
cat Array( "log.txt", "plus.txt" ), "log.txt"
log.txt ファイルの内容に out.txt ファイルの内容を追加します。
"log.txt", "plus.txt"
"log.txt"
→ cat コマンド(Linux)
参考
実行前の log.txt
plus.txt
実行後の log.txt
123
456
ABC
DEF
+
=
123
456
ABC
DEF
←
▼
▲
(src)
Set o = new CopyNotOverwriteFileClass
o.SourcePath = "work\Source"
o.DestinationPath = "work\Destination"
o.SynchronizedPath = "work\Synchronized"
o.Copy
サンプル
フォルダーをコピーします。
ただし、コピー先のファイルが前回コピーした内容と異なるファイルはコピーしないで、
メニューに一覧します。 メニューを閉じるまで、Copy メソッドから戻りません。
Copy の代わりに CopyForce を呼び出すと、メニューを表示しないで、強制上書きします。
関連
.SourcePath は、コピー元のフォルダーのパス。
.DestinationPath は、コピー先のフォルダーのパス。
.SynchronizedPath は、.DestinationPath にコピーしたファイルのコピーが入ります。
.SynchronizedPath にあるファイルと .DestinationPath にあるファイルの内容が異なれば、
.DestinationPath にあるファイルが修正されたと判断されます。
テスト
→ T_CopyDelNotOver フォルダ
コピー先にのみ存在するファイルは、存在し続けます。
←
▼
▲
Sub ReplaceShortcutFilesToFiles( FolderPath as string, Option_ as Empty )
ショートカット・ファイルを通常のファイルに変換します。
【引数】
FolderPath
Option_
変換するフォルダーのパス
Empty を指定してください
関連
サブ フォルダーを含めて変換します。
ソース
→ vbslib.vbs
←
▼
▲
Function CopyFunction( in_SourcePath as string, in_DestinationPath as string, ref_Option as variant )
as variant
コピーまたは移動をする関数の型。 関数名は、CopyFunction とは限りません。
【引数】
in_SourcePath
in_DestinationPath
コピー元のアドレスやパス
コピー先のアドレスやパス
ref_Option
ユーザー定義、または、コール元定義
返り値
コール元定義
Function SampleStaticClass_copy( in_SourcePath, in_DestinationPath, ref_Option )
copy_ren in_SourcePath, in_DestinationPath
End Function
Set a_copy = GetRef( "SampleStaticClass_copy" )
サンプル
関連
パスが相対パスで渡されたとき、その基準パスはカレント フォルダーです。
←
▼
▲
その他
テキストファイルの中の相対パスをフル・パスに変換してコピーします。
テキストファイルの内容を変更します。
ファイルを安全に更新します。
ショートカットを作成します。
複数のファイルをファイルコピーです。
ファイルのタイムスタンプを比較して、必要ならコマンドを実行します。
←
▼
▲
SrcPath のファイルまたはフォルダを、DstFolderPath フォルダーの中に移動します。
Sub move( SrcPath as string, DstFolderPath as string )
【引数】
SrcPath
DstFolderPath
移動元のファイルパス、またはフォルダーパス
移動先のフォルダーパス (ファイルパスは不可)
(src)
move "data", "do_test"
move "src\*", "src_copy"
src フォルダの内容を src_copy フォルダに移動します
data フォルダを do_test フォルダの中に移動します
参考
テスト
移動先にファイルやフォルダーがあるときは、上書き確認しないで、上書きします。
移動先のフォルダーにあるファイルが、移動元に無くても残ります。
→ T_Copy.vbs
T_Move2
ファイル:
vbslib.vbs
サンプル
関連
T_Move
←
▼
▲
Sub move_ren( SrcPath as string, DstPath as string )
ファイルまたはフォルダーの名前を変えて移動します。
【引数】
SrcPath
DstPath
コピー元のパス
コピー先のパス
SrcPath がファイルなら、DstPath に指定したパスもファイルにしてください。
SrcPath がフォルダなら、DstPath に指定したパスもフォルダにしてください。
(src)
移動先にファイルやフォルダーがあるときは、上書き確認しないで、上書きします。
移動先のフォルダーにあるファイルが、移動元に無くても残ります。 (Ver 5.00以降)
移動先のフォルダーにあるファイルが、移動元に無いときは、そのファイルは削除されます。 (Ver 5.00より前)
関連
テスト
→ T_Copy.vbs
T_Move
T_Move2
→ vbslib.vbs
ソース
←
▼
▲
Sub unzip( Src as string, Dst as string, Opt as integer )
圧縮 (zip形式) フォルダーを解凍します。
(src)
解凍する前にフォルダを削除します
すでにフォルダーが存在し、zip の内容と異なるときはエラーにします
すでにフォルダーが存在していたら何もしません
すでにフォルダーが存在していたらエラーにします
整数型のときは、ビットフィールドの Flags です。 なお、c = g_VBS_Lib です。
sample1
sample1.zip
file1.txt
file1.txt
sample1.zip
sample1
[ 送る |
圧縮(zip)フォルダ ]
フォルダを右クリック
Compressed Folders ]
ダブルクリックで開かないときは、右クリック [ プログラムから開く |
sample1.zip をエクスプローラで開くと、次のようになります。
unzip "sample1.zip", "sample1", F_AfterDelete
カレントフォルダー
file1.txt (新規作成)
sample1 (新規作成)
file1.txt
sample1
sample1.zip
unzip "sample1.zip", "C:\folderA\sample1", F_AfterDelete
sample1
file1.txt
folderA
C:\
sample1
file1.txt
sample1.zip
C:\folderA\
環境変数を指定する
【引数】
Src
Dst
コピー元 = 圧縮 (zip形式) フォルダー(= zip ファイル)のパス
コピー先 = 解凍してできるフォルダーのパス
Opt
Emtpy または、オプション・フラグ
ダウンロードした zip ファイルを解凍するために、vbslib の unzip を使わないでください。
不正な zip ファイルに対するテストをしていません。
Windows のエクスプローラーなどから展開してください。
参考
相対パス指定
フル・パス指定、インストール向け
解凍
sample1
sample1
特殊フォルダを指定する
関連
ファイル:
zip.vbs
→ T_Zip.vbs # [T_unzip]
テスト
関連
zip ファイルの中のルートに1つのフォルダーだけがあるときは、そのフォルダーの中を
展開します。
ソース
→ zip.vbs
boolean 型のときは、次のとおりです。
True
False
F_AfterDelete と同じ。 解凍する前にフォルダを削除します
F_IfNotExist と同じ。 すでにフォルダが存在していたら何もしません
c.CheckSameIfExist
←
▼
▲
zip ファイルを解凍します。
scriptlib
ファイル構成
リファレンス
圧縮 (zip形式) フォルダーを解凍します。
Setting_getIncludePathes = Array(_
:
"zip\zip.vbs",_
setting
vbs_inc_setting.vbs
zip\unzip2.exe の内部で使っている zlib について
→ scriptlib\zip\zip_readme.txt
zip_readme.txt
zip
zip 形式の圧縮ファイルを扱います。
ダウンロードした zip ファイルを解凍するために、vbslib の unzip を使わないでください。
不正な zip ファイルに対するテストをしていません。
Windows のエクスプローラーなどから展開してください。
vbslib
zip.vbs