ファイル&フォルダ操作

 ここではJScriptファイルフォルダコピー移動属性の設定取得の方法を紹介します。
本パートのサンプルを実行するときは、ソースコードに記載してあるパスファイル名に注意してください。
とりあえず、パソコンの動作が不安定になることは絶対にないように、テスト用のフォルダ内でのみ動作するようにしています。
システムファイルなんて移動したら最悪ですからね。f^^

 カレントディレクトリを取得、設定するには以下のプロパティを使用することで実現できます。
文字列に「\」マークを使用するには「\\」と2つ並べて扱わなければなりません。
パスに使用する「\」マークの変わりに「/」でも問題ありません。
「\」マークと違い、2つ並べる必要がないので、「/」の方をお勧めしますよ。
プロパティ名
 object.CurrentDirectory;

プロパティ説明
  現在アクティブになっているディレクトリを取得または、設定を提供するプロパティ。
 
引数
 object・・・・・・WshShellオブジェクト

戻り値
 現在アクティブになっているディレクトリへのパス。


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   カレントディレクトリの設定と取得。
//  

//  Shell関連の操作を提供するオブジェクトを取得
var sh = new ActiveXObject( "WScript.Shell" );

//  現在のカレントディレクトリを表示
WScript.Echo( sh.CurrentDirectory );

//  「C:」ドライブの直下にカレントディレクトリを設定
sh.CurrentDirectory = "C:/";

//  設定後のカレントディレクトリを表示
WScript.Echo( sh.CurrentDirectory );

//  オブジェクトを解放
sh = null;


[実行結果]
 最初に実行ファイルが置いてある階層のパスがメッセージボックスで表示され、
その後「C:」ドライブ直下のパスがメッセージボックスで表示されます。

 指定したパスファイルが存在しているか存在していないかを調べるには以下の関数を使用することで実現できます。
関数名
 object.FileExists( path );

関数説明
  指定したパスのファイルが存在しているかどうかを判断し、
  ブール値を戻り値に返します。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・存在しているか調べるファイルへのパス(絶対パス、
          相対パスどちらも指定可能)

戻り値
 pathで指定したパスのファイルが存在していた場合true。
 存在していない場合はfalse。


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルが存在してるかを確認する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層に「Info.txt」ファイルが存在しているかを確認
if( fs.FileExists("C:/TEST/Info.txt") )
    WScript.Echo( "「Info.txt」は存在します。" );
else
    WScript.Echo( "「Info.txt」は存在しません。" );

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/TEST」の階層に「Info.txt」ファイルが存在しているかどうかがメッセージボックスで表示されます。

 指定したパスファイル移動するには以下の関数を使用することで実現できます。
関数名
 object.MoveFile( src, dest );

関数説明
  ファイルを別の階層に移動する。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 src ・・・・・・・移動するファイルのパス(ワイルドカード使用可能)
 dest・・・・・・・移動先のパス(すでに同名のファイルが存在する場合は
          例外が発生します)

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルを移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「Info.txt」ファイルを
//  「C:/TEST/2」の階層に移動
fs.MoveFile( "C:/TEST/1/Info.txt", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST/1」の階層の「Info.txt」ファイルが「C:/TEST/2」の階層に移動されます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルをリネームして移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「Info.txt」ファイルを
//  「C:/TEST/2」の階層にリネームして移動
fs.MoveFile( "C:/TEST/1/Info.txt", "C:/TEST/2/NewInfo.txt" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST/1」の階層の「Info.txt」ファイルが「C:/TEST/2」の階層に移動され、ファイル名は「NewInfo.txt」に変更されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルを移動する(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の拡張子が「.txt」のファイル全てを
//  「C:/TEST/2」の階層に移動
fs.MoveFile( "C:/TEST/1/*.txt", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 「C:/TEST/1」の階層の拡張子が「.txt」のファイル全てが「C:/TEST/2」の階層に移動されます。

[サンプルコード4]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したファイルを移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「Info.txt」ファイルを
//  一つ前の階層に移動
fs.MoveFile( "Info.txt", "../" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果4]
 本ファイルと同階層にある「Info.txt」ファイルが一つ前の階層に移動されます。

 指定したパスファイルコピーするには以下の関数を使用することで実現できます。
関数名
 object.CopyFile( src, dest, [op] );

関数説明
  ファイルを別の階層にコピーする。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 src ・・・・・・・コピーするファイルのパス(ワイルドカード使用可能)
 dest・・・・・・・コピー先のパス
 op・・・・・・・・コピー先に同名のファイルが存在するとき上書きするかどうかを
          示すブール値。
          ただし、コピー先の同名のファイルが読取専用ファイルだった場合は
          例外が発生します。
          設定値がtrueなら上書きされ、falseは上書きされません。(省略可)
          省略した場合は、trueと同じ動作です。

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルをコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「Info.txt」ファイルを
//  「C:/TEST/2」の階層にコピー
fs.CopyFile( "C:/TEST/1/Info.txt", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST/1」の階層の「Info.txt」ファイルが「C:/TEST/2」の階層にコピーされます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルをリネームしてコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「Info.txt」ファイルを
//  「C:/TEST/2」の階層にリネームしてコピー
fs.CopyFile( "C:/TEST/1/Info.txt", "C:/TEST/2/NewInfo.txt" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST/1」の階層の「Info.txt」ファイルが「C:/TEST/2」の階層にコピーされ、ファイル名は「NewInfo.txt」に変更されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルをコピーする(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の拡張子が「.txt」のファイル全てを
//  「C:/TEST/2」の階層にコピー
fs.CopyFile( "C:/TEST/1/*.txt", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 「C:/TEST/1」の階層の拡張子が「.txt」のファイル全てが「C:/TEST/2」の階層にコピーされます。

[サンプルコード4]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したファイルをコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「Info.txt」ファイルを
//  一つ前の階層にコピー
fs.CopyFile( "Info.txt", "../" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果4]
 本ファイルと同階層にある「Info.txt」ファイルが一つ前の階層にコピーされます。

 指定したパスファイル削除するには以下の関数を使用することで実現できます。
関数名
 object.DeleteFile( path, [op] );

関数説明
  ファイルを削除する。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・削除するファイルのパス(ワイルドカード使用可能)
 op・・・・・・・・削除するファイルが読取専用ファイルの場合、削除可能かどうかを
          示すブール値。
          設定値がtrueなら読取専用ファイルの削除が可能で、
          falseは読取専用ファイルは削除できません。

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルを削除する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層の「Info.txt」ファイルを削除
fs.DeleteFile( "C:/TEST/Info.txt" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST」の階層の「Info.txt」ファイルが削除されます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルを削除する(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層の拡張子が「.txt」のファイル全てを削除
fs.DeleteFile( "C:/TEST/*.txt" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST」の階層の拡張子が「.txt」のファイル全てが削除されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したファイルを削除する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「Info.txt」ファイルを削除
fs.DeleteFile( "Info.txt" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 本ファイルと同階層にある「Info.txt」ファイルが削除されます。

 指定したパスファイルファイル名を取得または変更するには以下の関数及び、プロパティを使用することで実現できます。
関数名
 object.GetFile( path );

関数説明
  指定したパスのファイルのFileオブジェクトを取得する。
 絶対パス及び相対パスでの指定が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・目的のファイルへのパス

戻り値
 目的のファイルのFileオブジェクト


プロパティ名
 object.Name;

プロパティ説明
  Fileオブジェクトに設定されているファイル名の取得または、設定する
 方法を提供するプロパティ。

引数
 object・・・・・・Fileオブジェクト

戻り値
 Fileオブジェクトに設定されているファイル名


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルのファイル名の取得と、ファイル名の変更。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Fileオブジェクトを取得
var file = fs.GetFile( "C:/TEST/Info.txt" );

//  ファイル名を表示
WScript.Echo( file.Name );

//  ファイル名を変更
file.Name = "NewInfo.txt";

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果]
 「C:/TEST」の階層の「Info.txt」ファイルのFileオブジェクトを取得し、
最初に変更前のファイル名をメッセージボックスで表示し、
ファイル名を「NewInfo.txt」に変更されます。

 指定したディレクトリ内の全てのFileオブジェクトを取得するには以下の関数及び、プロパティを使用することで実現できます。
関数名
 object.GetFolder( path );

関数説明
  指定したパスのフォルダのFolderオブジェクトを取得する。
 絶対パス及び相対パスでの指定が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・目的のフォルダへのパス

戻り値
 目的のフォルダのFolderオブジェクト


プロパティ名
 object.Files;

プロパティ説明
  Folderオブジェクトに設定されているFileオブジェクト全てを
 管理しているコレクションを提供するプロパティ。

引数
 object・・・・・・Folderオブジェクト

戻り値
 Folderオブジェクトに設定されているFileオブジェクト全てを
 管理しているコレクション


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダ内にある全ファイルを取得。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Folderオブジェクトを取得
var folder = fs.GetFolder( "C:/TEST" );

//  EnumeratorオブジェクトにFolderオブジェクトに
//  含まれている全てのFileオブジェクトを格納
var em = new Enumerator( folder.Files );

//  格納したFileオブジェクトのファイル名を全て表示
for( em.moveFirst(); !em.atEnd(); em.moveNext() )
    WScript.Echo( em.item().Name );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果]
 「C:/TEST」の階層の全てのファイル名をメッセージボックスで一つずつ表示されます。

 指定したパスフォルダが存在しているか存在していないかを調べるには以下の関数を使用することで実現できます。
関数名
 object.FolderExists( path );

関数説明
  指定したパスのフォルダが存在しているかどうかを判断し、
  ブール値を戻り値に返します。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・存在しているか調べるフォルダへのパス(絶対パス、
          相対パスどちらも指定可能)

戻り値
 pathで指定したパスのフォルダが存在していた場合true。
 存在していない場合はfalse。


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダが存在してるかを確認する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層に「EX」フォルダが存在しているかを確認
if( fs.FolderExists("C:/TEST/EX") )
    WScript.Echo( "「EX」は存在します。" );
else
    WScript.Echo( "「EX」は存在しません。" );

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/TEST」の階層に「EX」フォルダが存在しているかどうかがメッセージボックスで表示されます。

 指定したパスフォルダを作成するには以下の関数を使用することで実現できます。
(2016/8/8追記)
関数名
 object.CreateFolder( path );

関数説明
  指定したパスにフォルダを作成する。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・作成するフォルダへのパス(絶対パス、
          相対パスどちらも指定可能)
       ※一度に複数の階層は作成は出来ない。
        「C:/1/2/3/4/5/6/7」のように一気に
        7つ作成は出来ないので注意。

戻り値
 作成したFolderオブジェクト。


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスにフォルダを作成する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層に「1」フォルダが存在しているかを確認
if( fs.FolderExists("C:/TEST/1") )
{
    WScript.Echo( "「1」は存在します。" );
}
else
{
    //  「C:/TEST」の階層に「1」フォルダを作成
    fs.CreateFolder( "C:/TEST/1" );
    WScript.Echo( "「1」フォルダを作成しました。" );
}

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/TEST」の階層に「1」フォルダが作成される。
すでに同名のフォルダが存在していたら、存在していることがメッセージボックスで表示される。

 指定したパスフォルダ移動するには以下の関数を使用することで実現できます。
関数名
 object.MoveFolder( src, dest );

関数説明
  フォルダを別の階層に移動する。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 src ・・・・・・・移動するフォルダのパス(ワイルドカード使用可能)
 dest・・・・・・・移動先のパス(すでに同名のフォルダが存在する場合は
          例外が発生します)

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダを移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「A」フォルダを
//  「C:/TEST/2」の階層に移動
fs.MoveFolder( "C:/TEST/1/A", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST/1」の階層の「A」フォルダが「C:/TEST/2」の階層に移動されます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダをリネームして移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「A」フォルダを
//  「C:/TEST/2」の階層にリネームして移動
fs.MoveFolder( "C:/TEST/1/A", "C:/TEST/2/NewA" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST/1」の階層の「A」フォルダが「C:/TEST/2」の階層に移動され、フォルダ名は「NewA」に変更されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダを移動する(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層のフォルダ全てを
//  「C:/TEST/2」の階層に移動
fs.MoveFolder( "C:/TEST/1/*", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 「C:/TEST/1」の階層のフォルダ全てが「C:/TEST/2」の階層に移動されます。

[サンプルコード4]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したフォルダを移動する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「A」フォルダを
//  一つ前の階層に移動
fs.MoveFolder( "A", "../" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果4]
 本ファイルと同階層にある「A」フォルダが一つ前の階層に移動されます。

 指定したパスフォルダコピーするには以下の関数を使用することで実現できます。
関数名
 object.CopyFolder( src, dest, [op] );

関数説明
  フォルダを別の階層にコピーする。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 src ・・・・・・・コピーするフォルダのパス(ワイルドカード使用可能)
 dest・・・・・・・コピー先のパス
 op・・・・・・・・コピー先に同名のフォルダが存在するとき上書きするかどうかを
          示すブール値。
          設定値がtrueなら上書きされ、falseは上書きされません。(省略可)
          省略した場合は、trueと同じ動作です。

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダをコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「A」フォルダを
//  「C:/TEST/2」の階層にコピー
fs.CopyFolder( "C:/TEST/1/A", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST/1」の階層の「A」フォルダが「C:/TEST/2」の階層にコピーされます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダをリネームしてコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層の「A」フォルダを
//  「C:/TEST/2」の階層にリネームしてコピー
fs.CopyFolder( "C:/TEST/1/A", "C:/TEST/2/NewA" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST/1」の階層の「A」フォルダが「C:/TEST/2」の階層にコピーされ、フォルダ名は「NewA」に変更されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダをコピーする(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST/1」の階層のフォルダ全てを
//  「C:/TEST/2」の階層にコピー
fs.CopyFolder( "C:/TEST/1/*", "C:/TEST/2/" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 「C:/TEST/1」の階層のフォルダ全てが「C:/TEST/2」の階層にコピーされます。

[サンプルコード4]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したフォルダをコピーする。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「A」フォルダを
//  一つ前の階層にコピー
fs.CopyFolder( "A", "../" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果4]
 本ファイルと同階層にある「A」フォルダが一つ前の階層にコピーされます。

 指定したパスフォルダ削除するには以下の関数を使用することで実現できます。
関数名
 object.DeleteFolder( path, [op] );

関数説明
  フォルダを削除する。
 絶対パス及び相対パスでの移動が可能です。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・削除するフォルダのパス(ワイルドカード使用可能)
 op・・・・・・・・削除するフォルダが読取専用フォルダの場合、削除可能かどうかを
          示すブール値。
          設定値がtrueなら読取専用フォルダの削除が可能で、
          falseは読取専用フォルダは削除できません。

戻り値
 なし。


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダを削除する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層の「EX」フォルダを削除
fs.DeleteFolder( "C:/TEST/EX" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果1]
 「C:/TEST」の階層の「EX」フォルダが削除されます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダを削除する(正規表現)。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  「C:/TEST」の階層のフォルダ全てを削除
fs.DeleteFolder( "C:/TEST/*" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果2]
 「C:/TEST」の階層のフォルダ全てが削除されます。

[サンプルコード3]
//  
//  ファイル&フォルダ操作
//  
//   相対パスで指定したフォルダを削除する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  本ファイルと同階層にある「EX」フォルダを削除
fs.DeleteFolder( "EX" );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果3]
 本ファイルと同階層にある「EX」フォルダが削除されます。

 指定したパスフォルダフォルダ名を取得または変更するには以下のプロパティを使用することで実現できます。
GetFolder()関数については指定階層の全ファイルを取得を参照してください。
プロパティ名
 object.Name;

プロパティ説明
  Folderオブジェクトに設定されているフォルダ名の取得または、設定する
 方法を提供するプロパティ。

引数
 object・・・・・・Folderオブジェクト

戻り値
 Folderオブジェクトに設定されているファイル名


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダのフォルダ名の取得と、フォルダ名の変更。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Folderオブジェクトを取得
var folder = fs.GetFolder( "C:/TEST/EX" );

//  フォルダ名を表示
WScript.Echo( folder.Name );

//  フォルダ名を変更
folder.Name = "NewEX";

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果]
 「C:/TEST」の階層の「EX」フォルダのFolderオブジェクトを取得し、
最初に変更前のフォルダ名をメッセージボックスで表示し、
フォルダ名を「NewEX」に変更されます。

 指定したディレクトリ内の全てのFolderオブジェクトを取得するには以下のプロパティを使用することで実現できます。
GetFolder()関数については指定階層の全ファイルを取得を参照してください。
プロパティ名
 object.SubFolders;

プロパティ説明
  Folderオブジェクトに設定されている全てのサブフォルダのFolderオブジェクトを
 管理しているコレクションを提供するプロパティ。

引数
 object・・・・・・Folderオブジェクト

戻り値
 Folderオブジェクトに設定されている全てのサブフォルダのFolderオブジェクトを
 管理しているコレクション


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのフォルダ内にある全フォルダを取得。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Folderオブジェクトを取得
var folder = fs.GetFolder( "C:/TEST" );

//  EnumeratorオブジェクトにFolderオブジェクトに
//  含まれている全てのFolderオブジェクトを格納
var em = new Enumerator( folder.SubFolders );

//  格納したFileオブジェクトのファイル名を全て表示
for( em.moveFirst(); !em.atEnd(); em.moveNext() )
    WScript.Echo( em.item().Name );

//  オブジェクトを解放
fs = null;

WScript.Echo( "終了" );


[実行結果]
 「C:/TEST」の階層の全てのフォルダ名をメッセージボックスで一つずつ表示されます。

 指定したファイルまたはフォルダ属性の取得及び設定するには以下のプロパティを使用することで実現できます。
このプロパティ値は複数の属性の値を加算した値となります。
加算してしまったら予想外な属性になるんじゃないの?
って考える人もいるでしょうが、プロパティ値二進数で見ると・・、それぞれのビットに1が設定されるみたいなので問題ありません。
でも、加算というと誤解が生まれますね。
論理和による合成と訂正します。
関数名
 object.Attributes;

関数説明
  指定したファイルまたはフォルダの属性の取得及び、
 設定を提供するプロパティ。

引数
 object・・・・・・Fileオブジェクトまたは、Folderオブジェクト

戻り値
 指定したファイルまたはフォルダの属性値


[属性値]
内容 備考
0 標準ファイル 全ての属性値がない状態
1 読み取り専用ファイル 取得と設定可
2 隠しファイル 取得と設定可
4 システムファイル 取得と設定可
8 ディスクドライブボリュームラベル 取得のみ可
16 ディレクトリ 取得のみ可
32 アーカイブファイル 取得と設定可
64 ショートカットファイル 取得のみ可
128 圧縮ファイル 取得のみ可

[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルの属性の取得と設定。
//  

//  属性の種類
var FATT_NORMAL     =   0;  // 標準ファイル
var FATT_READONLY   =   1;  // 読み取り専用ファイル(取得と設定可)
var FATT_HIDDEN     =   2;  // 隠しファイル(取得と設定可)
var FATT_SYSTEM     =   4;  // システムファイル(取得と設定可)
var FATT_VOLUME     =   8;  // ディスクドライブボリュームラベル(取得のみ可)
var FATT_DIRECTORY  =  16;  // ディレクトリ(取得のみ可)
var FATT_ARCHIVE    =  32;  // アーカイブファイル(取得と設定可)
var FATT_ALIAS      =  64;  // ショートカットファイル(取得のみ可)
var FATT_COMPRESSED = 128;  // 圧縮ファイル(取得のみ可)

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Fileオブジェクトを取得
var file = fs.GetFile( "C:/TEST/Info.txt" );

//  変更前の読取専用属性を取得
if( file.Attributes & FATT_READONLY )
    WScript.Echo( "変更前:読取専用ファイル" );
else
    WScript.Echo( "変更前:書き込み可能ファイル" );

//  読取専用属性を反転(読取専用だった場合書き込み可)
file.Attributes += file.Attributes & FATT_READONLY ? -FATT_READONLY : FATT_READONLY;

//  変更後の読取専用属性を取得
if( file.Attributes & FATT_READONLY )
    WScript.Echo( "変更後:読取専用ファイル" );
else
    WScript.Echo( "変更後:書き込み可能ファイル" );

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/TEST」の階層の「Info.txt」ファイルの変更前の読取専用の属性値をメッセージボックスで表示し、読取専用属性値を反転します。
そして、変更後の読取専用の属性値を表示します。
つまり、変更前が読取専用ファイルなら書き込み可能ファイルに・・。
変更前が、書き込み可能ファイルなら読取専用ファイルに属性が変更されます。

 マイドキュメントデスクトップ等の特殊フォルダパスを取得するには別の方法もあります。
それを実現するには以下のプロパティを使用します。
アカウントによってマイドキュメントデスクトップパスは違います。
今回紹介するものはアカウントを気にする必要がなくなるので便利です。
関数名
 object.SpecialFolders( sp_name );
 
関数説明
  特殊フォルダを管理するコレクション。
 sp_nameに指定した特殊フォルダ名をしていすることで、特殊フォルダへのパスを
 取得することが出来ます。

引数
 object・・・・・・WshShellオブジェクト
 sp_name ・・・・・取得する特殊フォルダ名

[特殊フォルダ名]
特殊フォルダ名
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
戻り値  指定した特殊フォルダへの絶対パス

[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   特殊フォルダのパスを表示する。
//  

//  Shell関連の操作を提供するオブジェクトを取得
var sh = new ActiveXObject( "WScript.Shell" );

//  デスクトップのパスを表示
var path = sh.SpecialFolders( "Desktop" );

WScript.Echo( path );

//  オブジェクトを解放
sh = null;


[実行結果]
 デスクトップへの絶対パスを表示します。

 パス文字列から、ファイル名だけを取得するには以下の関数を利用することで実現できます。
関数名
 object.GetFileName( path );
 
関数説明
  指定したパスの最後のファイル名またはフォルダ名部分を取得する。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・ファイルパスまたはフォルダパス
 
戻り値
 pathで指定したパスの最後のファイル名または、フォルダ名


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   パスからファイル名部分だけを取得する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  パスからファイル名を取得
var path = "C:/Info.txt";

var name = fs.GetFileName( path );

WScript.Echo( name );

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/Info.txt」というパスから「Info.txt」だけを取得し、メッセージボックスで表示されます。

 パスから一つ上の階層パスを取得するには以下の関数を利用することで実現できます。
関数名
 object.GetParentFolderName( path );
 
関数説明
  指定したパスのファイルまたはフォルダの親フォルダのパスを取得する。

引数
 object・・・・・・FileSystemObjectオブジェクト
 path・・・・・・・ファイルパスまたはフォルダパス
 
戻り値
 pathで指定したパスのファイルまたは、フォルダの親フォルダのパス


[サンプルコード]
//  
//  ファイル&フォルダ操作
//  
//   パスから親の階層のパスを取得する。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  パスから親の階層のパスを取得
var path1 = "C:/Info.txt";

var path2 = fs.GetParentFolderName( path1 );

WScript.Echo( path2 );

//  オブジェクトを解放
fs = null;


[実行結果]
 「C:/Info.txt」というパスから一つ前の階層、つまり「C:/」だけを取得し、メッセージボックスで表示されます。

 指定したファイル及び、フォルダ容量を確認するには以下のプロパティを利用することで実現できます。
GetFile()関数についてはファイル名を設定&取得を参照してください。
GetFolder()関数については指定階層の全ファイルを取得を参照してください。
プロパティ名
 object.Size;
 
プロパティ説明
  指定したパスのファイルまたはフォルダの容量をバイト単位で取得します。
 フォルダパスを指定した場合、そのフォルダ内に含まれている全てのフォルダ、
 ファイルのサイズを取得できます。

引数
 object・・・・・・FileオブジェクトまたはFolderオブジェクト
 
戻り値
 ファイルまたは、フォルダの容量(バイト単位)


[サンプルコード1]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルの容量を表示。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Fileオブジェクトを取得
var file = fs.GetFile( "C:/TEST/Info.txt" );

//  サイズを表示
WScript.Echo( "Info.txtは" + file.Size + "バイト" );

//  オブジェクトを解放
fs = null;


[実行結果1]
 「C:/TEST」フォルダの「Info.txt」ファイルの容量がメッセージボックスで表示されます。

[サンプルコード2]
//  
//  ファイル&フォルダ操作
//  
//   指定したパスのファイルの容量を表示。
//  

//  ファイル関連の操作を提供するオブジェクトを取得
var fs = new ActiveXObject( "Scripting.FileSystemObject" );

//  Folderオブジェクトを取得
var folder = fs.GetFolder( "C:/TEST" );

//  サイズを表示
WScript.Echo( "C:/TESTは" + folder.Size + "バイト" );

//  オブジェクトを解放
fs = null;


[実行結果2]
 「C:」ドライブの「TEST」フォルダの容量がメッセージボックスで表示されます。


テキストファイル操作へ 目次 ショートカットファイル操作へ