今回は、AutoIt を使った自動化の第一歩として、指定したパスにフォルダーを自動で作成するスクリプトを紹介します。
単純な処理ですが、バックアップ用のフォルダーを日付ごとに作成したり、新しいプロジェクトの定型フォルダーを一瞬で準備したりと、様々な場面で応用できる非常に重要なコマンドです。
実行するスクリプトの概要
このスクリプトは、実行すると指定した場所に新しいフォルダーを作成します。
例えば、「C:\AutoIt_Test」というフォルダーを作りたい場合、このスクリプトを使えば一瞬で作成できます。
もし同じ名前のフォルダーが既に存在している場合は、何もせずに(エラーにもならずに)正常に終了します。この「既にあってもエラーにならない」という点が、実用上とても便利です。
#include <MsgBoxConstants.au3>
; ### 設定項目 ###
; ここに作成したいフォルダーのフルパスを記入します。
Local $sCreateFolderPath = "C:\AutoIt_Test"
; ### メイン処理 ###
; DirCreate関数を使ってフォルダーを作成します。
DirCreate($sCreateFolderPath)
; フォルダーが実際に存在するかどうかを確認します。
If FileExists($sCreateFolderPath) Then
; 成功した場合のメッセージボックス
MsgBox($MB_OK, "成功", "フォルダーが正常に作成されました。" & @CRLF & "パス: " & $sCreateFolderPath)
Else
; 失敗した場合のメッセージボックス
MsgBox($MB_ICONERROR, "失敗", "フォルダーの作成に失敗しました。")
EndIf
コードの詳しい解説
#include <MsgBoxConstants.au3>
これは、MsgBox 関数(メッセージボックスを表示する関数)で使う定数($MB_OK など)をあらかじめ読み込んでおくための記述です。おまじないのようなものだと考えてください。
Local $sCreateFolderPath = “C:\AutoIt_Test”
「Local」は、このスクリプトの中だけで使う変数を宣言する命令です。変数とは、データを入れておくための「箱」のようなものです。
ここでは、$sCreateFolderPath という名前の変数を用意し、その中に作成したいフォルダーのパスである文字列 "C:\AutoIt_Test" を入れています。
この行を書き換えるだけで、好きな場所にフォルダーを作成できます。
例えば、デスクトップに「MyTool」というフォルダーを作りたければ、以下のように書き換えます。
Local $sCreateFolderPath = @DesktopDir & "\MyTool"
(@DesktopDir はAutoItに初めから用意されている、デスクトップのパスを示すマクロです)
DirCreate($sCreateFolderPath)
これがフォルダーを作成する本体の関数です。
DirCreate 関数は、引数(ひきすう)として渡されたパスのフォルダーを作成します。今回は、変数$sCreateFolderPathの中身、つまり"C:\AutoIt_Test"を渡しているので、そのパスにフォルダーが作成されます。
この関数の優れた点は以下の 2つです。
- 既にフォルダーが存在していてもエラーにならない。
- 途中のフォルダーが存在しなくても、全て自動で作ってくれる。 (例:
C:\A\B\Cと指定した時に、「A」も「B」も存在しなくても、全て作成してくれる)
If FileExists($sCreateFolderPath) Then … Else … EndIf
最後のこの部分は、フォルダーが本当に作成されたかを確認し、結果をメッセージボックスで表示するための処理です。
FileExists() 関数は、指定したパスにファイルやフォルダーが存在するかをチェックする関数です。
存在すれば「True (真)」、存在しなければ「False (偽)」を返します。
If FileExists(...) Then: もしフォルダーが存在するなら(作成に成功したなら)MsgBox(...)で成功メッセージを表示します。
Else: そうでなければ(作成に失敗したなら)MsgBox(...)で失敗メッセージを表示します。
@CRLFは改行を意味するマクロです。
まとめ
今回は、DirCreate 関数を使ってフォルダーを自動作成する方法を解説しました。
たった 1行の関数ですが、他の処理と組み合わせることで、「今日の日付のフォルダーを作って、そこにバックアップファイルをコピーする」といった、より実用的な自動化処理の基礎となります。
まずはこのコードを元に、色々なパスを指定してフォルダーが作れることを試してみてください。
コメント