|
運用 Windows管理者のためのWindows Script Host入門 第11回(最終回) WSHスクリプトからのファイル操作(2) 2.ドライブの操作海津 智宏2005/11/02 |
![]() |
|
|
|
ドライブ情報の取得
次に、ドライブ情報の取得について解説する。FSOオブジェクトでは、ドライブを列挙したり、ドライブの空きスペースの大きさを取得したりすることができる。ただしFSOオブジェクトではドライブの情報を取得できるだけで、ドライブの設定を更新することはできない。ネットワーク・ドライブの接続や切断は、FSOオブジェクトではなく、第8回で解説したWshNetworkオブジェクトを利用する。FSOにはドライブを表すDriveオブジェクトがあり、ドライブの情報はDriveオブジェクトのプロパティとして取得する。
![]() |
| Driveオブジェクト |
| ドライブ情報を取得できる。ただしDriveオブジェクトでドライブの設定を変更することはできない。 |
FSOオブジェクト自体の持つドライブ関係のメソッド/プロパティは以下の3種類である。
| メソッド/プロパティ | 機能 |
| DriveExistsメソッド | ドライブが存在するかどうかを調査する |
| GetDriveメソッド | Driveオブジェクトを返す |
| Drivesプロパティ | ドライブの一覧を返す |
DriveExistsメソッドは、パラメータとしてドライブ名を取り、ドライブが存在すればTrueを、存在しなければFalseを返す。GetDriveメソッドは、渡されたドライブ名に対応するDriveオブジェクトを返す。これら2つのメソッドには、ドライブ文字(C)のほか、コロンの付いたドライブ名(C:)、コロンと「\」記号の付いたドライブ名(C:\)、ネットワーク・ドライブのUNC名(\\Server\Share)なども渡すことができる。DrivesプロパティはFiles、SubFoldersなどと同様に、ドライブの一覧をコレクションとして返す。
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") |
D:\WSH>cscript driveexists.vbs |
Driveオブジェクト
Driveオブジェクトはドライブを表すオブジェクトである。FSOオブジェクトのGetDriveメソッド、Drivesプロパティ、FileオブジェクトとFolderオブジェクトのDriveプロパティから取得できる。Driveオブジェクトには以下の12種類のプロパティがある。
| プロパティ | 機能 |
| AvailableSpaceプロパティ | 利用可能な空きスペースの大きさを取得する |
| DriveLetterプロパティ | ドライブ名(「C」など)を取得する |
| DriveTypeプロパティ | ドライブの種類を取得する |
| FileSystemプロパティ | ドライブのファイルシステムを取得する |
| FreeSpaceプロパティ | ディスクの空きスペースの大きさを取得する |
| IsReadyプロパティ | ドライブが準備できているかどうかを取得する |
| Pathプロパティ | コロン付きのドライブ名を取得する |
| RootFolderプロパティ | ルートフォルダを表すFolderオブジェクトを取得する |
| SerialNumberプロパティ | ディスクのシリアルナンバーを取得する |
| ShareNameプロパティ | ネットワーク・ドライブの共有名を取得する |
| TotalSizeプロパティ | ディスクの総容量を取得する |
| VolumeNameプロパティ | ドライブのボリューム名を取得する |
AvailableSpaceプロパティとFreeSpaceプロパティは通常同じ値を返す。ディスクにクォータ制限がかかっている場合には、この2つの値は異なる値を返す。
DriveTypeプロパティは、ドライブの種類によって0から5までの整数値を返す。0は不明なドライブ、1はリムーバブル・ディスク、2はハードディスク、3はネットワーク・ドライブ、4はCD-ROM、5はRAMディスクを表す。
FileSystemプロパティは、「NTFS」「FAT」「CDFS」のどれかを返す。
ShareNameプロパティは、ネットワーク・ドライブ以外のドライブでは空文字列("")を返す。
次の例ではDドライブの情報を表示する。
1: Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") |
D:\WSH>cscript drive.vbs |
パス文字列の処理
最後に、パス文字列を処理するためのメソッドを紹介する。ファイル名の取得や親フォルダなどは、FileオブジェクトやFolderオブジェクトを使っても取得できるが、文字列のまま処理することで、実際には存在しないパスも扱うことができるのが利点といえる。
パス文字列を処理するメソッドには以下の7種類がある。
| メソッド | 機能 |
| GetDriveNameメソッド | パスのドライブ名を取得する |
| GetFileNameメソッド | パスのファイル名を取得する |
| GetBaseNameメソッド | パスの拡張子を除いた名前を取得する |
| GetExtensionNameメソッド | パスの拡張子を取得する |
| GetParentFolderNameメソッド | パスの親フォルダのパスを取得する |
| GetAbsolutePathNameメソッド | 相対パスを絶対パスに変換する |
| BuildPathメソッド | パスとファイル名を結合する |
GetDriveNameメソッド、GetFileNameメソッド、GetBaseNameメソッド、GetExtensionNameメソッド、GetParentFolderNameメソッドはパス文字列から一部分を抽出するメソッドである。例えば、「D:\WSH\test.txt」であれば次のようになる。
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") |
D:\WSH>cscript path1.vbs |
GetAbsolutePathNameメソッドは、カレント・ディレクトリに基づいて、相対パスを絶対パスに変換する。絶対パスを渡した場合も、そのまま絶対パスが返される。BuildPathはパラメータを2つ取り、2つの文字列を「\」記号で連結した文字列を返す。「\」記号の数はBuildPathメソッドによって調整されるが、絶対パス/相対パスなどは処理されない。
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") |
D:\WSH>cscript path.vbs |
■
途中で少々ブランクもあったが、この連載も今回で終了である。本連載では、Windows管理の面倒なルーチンワークを自動化する方法として、WSHを活用するための基礎について説明してきた。あくまで基礎解説に集中したので、すぐに役立つ実践的なスクリプトなどは紹介できなかったが、これらについては、マイクロソフトがインターネットで公開している以下のサイトが大いに役立つだろう。
このスクリプト・センターには、Windowsシステム管理者を対象とした、実践的なサンプル・スクリプトが多数公開されている。スクリプトを自分でゼロから作る前に、利用できるサンプルがすでに紹介されていないかを検索するとよい。
読者の皆さんの管理作業の軽減に少しでも本連載が役立てば幸いである。![]()
| INDEX | ||
| [運用]Windows管理者のためのWindows Script Host入門 | ||
| 第11回(最終回) WSHスクリプトからのファイル操作(2 | ||
| 1.フォルダの操作 | ||
| 2.ドライブの操作 | ||
| 運用 |
TechTargetジャパン
- フォルダの名前が変更できない不具合を解消する (2012/5/25)
Windows 7のエクスプローラで画像ファイルやPDFが含まれるフォルダの名前が変更できなかったり、削除できなかったりする不具合の解消方法を解説する - 通信相手のMACアドレスを調べる近隣探索プロトコル (2012/5/24)
イーサネットで通信する場合、相手のMACアドレスが分からないとパケットを送信できない。ARPに代わるIPv6の近隣探索機能とは? - 第316話 ネット対応トイレ (2012/5/22)
毎日用をたすだけで、体温に体重、血圧、体脂肪率も計測して、尿検査、便検査も自動で実施、データはネット経由で医師に送られます - 私物のスマートフォンを業務に活用、「BYOD」って何? (2012/5/21)
私物のスマホやノートPCを組織的に業務に活用する「BYOD」が新たなトレンドとして注目されている。なぜいまBYODなのか? BYODのメリットとデメリットは?
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


