64歳パソコン教師の日記 NO.895 (2002.8.20)


 Windows 98 から登場した機能の一つに「Windows Scripting Host(WSH)」があります。この機能を使って、指定したフォルダ内に保存されているファ イルの中から、指定した拡張子のファイルを、指定したフォルダにコピーする実行ファイルを作成してみましょう。

 Windows 95 の場合は、下記のサイトから「Windows Scripting Host」をダウンロードできます。

 http://www.microsoft.com/japan/msdn/scripting/default.asp

  1. 下記のスクリプトをコピーして、→「メモ帳」に貼り付けます。

  2. 「ファイル」→「名前を付けて保存」とクリック、→「ファイルの種類」欄を「すべてのファイル」とし、→「保存する場所」を「デスクトップ」、  →「ファイル名」欄に「backup.vbs」と入力、→「保存」ボタンをクリックします。

  3. デスクトップの「backup.vbs」アイコンをダブルクリックするとダイアログが表示されます。 「コピー元フォルダ」の入力欄には「C:\」と入力さ  れています。変更する場合は「Delete」キーを押して削除、→フォルダのパスを入力、→「OK」ボタンをクリックします。

    ■ウイルス対策ソフトをインストールされている場合は、「backup.vbs」を最初にダブルクリックした時に「警告」が表示されますが、「このス   クリプトを認証する」を選択します。(Norton AntiVirus の場合)

  4. 「コピーするファイルの拡張子」→「コピー先フォルダ」ダイアログも同じ要領です。
  5. Dドライブに「BACKUP」フォルダが作成され、その中にCドライブの拡張子「doc」ファイルがすべてコピーされます。

  6. コピー元フォルダ、コピーするファイルの拡張子、コピー先フォルダを変更する場合は、デスクトップの「backup.vbs」アイコンを右クリック、→  「アプリケーション(プログラム)から開く」をクリック、→「Notepad」を選択、→スクリプトの1、3、5行目の「C:\」「doc」「D:\BACKUP」  を修正、→「ファイル」→「上書き保存」とクリックします。
--------------------------------------------------------------------

myFolder = InputBox("コピー元フォルダ",,"C:\")
If myFolder = " " Then WScript.Quit
myExt = InputBox("コピーするファイルの拡張子",,"doc")
If myExt = " " Then WScript.Quit
newFolder = InputBox("コピー先フォルダ",,"D:\BACKUP")
If newFolder = " " Then WScript.Quit

Set FS = CreateObject("Scripting.FileSystemObject")
Set objFolder = FS.GetFolder(myFolder)

On Error Resume Next
FS.CreateFolder(newFolder)

intExt = len(myExt)

Call CpFile(objFolder)

Sub CpFile(objFolder)

For Each myFile In objFolder.Files
If Right(myFile.Name, intExt) = myExt Then
FS.CopyFile myFile, newFolder & "\"
End If
Next

For Each objSubFolder In objFolder.SubFolders
Call CpFile(objSubFolder)
Next

End Sub