BAT: 空フォルダーを作成するスクリプト
バッチスクリプトで空ディレクトリ/サブディレクトリを作成したい場合mkdirコマンドを使用します。make directoryの略でフォルダーを作成するコマンドになります。mkdirの他にもmdコマンドがありますがどちらも同じ機能のためどちらを使用しても問題ありません。
例
下記のコードは現在の階層にsampleフォルダーがなければsampleフォルダーを作成するスクリプトになります。
@echo off
setlocal
set "path=%~dp0"
set "file=sample"
md %path%%file%
endlocal
pause
上記の.batを実行してみるとわかりますが、すでにsampleディレクトリが存在している場合は実行できません。上書をせず、処理が終了します。
もしサブディレクトリ階層付きでフォルダを作成したい場合次のように指定することで作成可能です。/ではなく\になるので注意してください。
set "file=sample\subfolder"
階層を指定したい場合
階層を指定したい場合はその階層にアクセスしてターミナルを起動すればフルパスが取得します。後はpathの変数にセットすればその階層にフォルダを作成することが可能です。
set "path=C:\sample\hts\fffb\"
フォルダ名が文字化けする場合
エディタで保存する場合基本UTF-8で保存されてしまうのでそれが文字化けの原因になります。保存形式をUTF-8からShift JISに変えることで解決できます。または、batファイルにchcpと記載することでコードの保存形式を変更することができます。
@echo off
chcp 65001 >nul
setlocal
...
Shift JISで保存した場合上記のchcpは不要になります。用途に合わせて変更してください。
mkdir / mdの構文
mkdir [<drive>:]<path>
md [<drive>:]<path>
| パラメータ | 詳細 |
|---|---|
[<drive>:] | ディレクトリを作成するドライブを指定。例: C:、D:、Z: |
<path> | 新しいディレクトリの名前と場所を指定。例: \sample\test、\Users\user\Documents\test |
/? | ヘルプ情報を表示(下記参照) |
[<drive>:]に関しては省略することが可能なので記載しなかった場合現在のドライブを基準にpathで指定されて場所へディレクトリを作成します。
例
次のコードがCドライブ環境の場合C:から\Desktop\sample\sub\というディレクトリ階層を作成してフォルダーを作成します。
set "path=\Desktop\sample\sub\"
set "folder=作成"
md %path%%folder%
ヘルプ情報
/?のヘルプ情報の内容になります。
ディレクトリを作成します。
MKDIR [ドライブ:]パス
MD [ドライブ:]パス
コマンド拡張機能を有効にすると、MKDIR は次のように変更されます:
MKDIR は、必要に応じてパスの中間ディレクトリを作成します。
たとえば、\a が存在しない場合、
mkdir \a\b\c\d
は、次と同じです:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
拡張機能が無効な場合は、上のように入力します。