【PowerShell講座】複数フォルダを高速で作成する

複数フォルダを高速で作成する

PowerShell講座です。

前回は、実行ポリシーについて紹介しました。

【PowerShell講座】実行ポリシーについて

2020.01.11

今回は、複数フォルダを高速で作成するサンプルスクリプトについて。

環境は、Windows 10(64bit)、PowerShell 6.1.2 です。

それでは、見ていきましょう。



複数フォルダを高速で作成する

複数フォルダを高速で作成する方法を紹介します。

New-Item を使う

New-Item を使って、フォルダを作成していきます。

New-Item 20200110 -ItemType Directory

この場合、カレントディレクトリに 20200110 という名前のフォルダが作成されます。

Excel(エクセル)のオートフィル機能を使う

Excel(エクセル)のオートフィル機能を使って、規則性のある連続したデータを作成します。

ちなみに私は現在、Excel を持っていないので、Kingsoft Spreadsheets を使っていきます(WPS Office)。

例えば、20200101~20200131 といったように1日ごとにフォルダ分けを行う場合。

まず、A1セルに 20200101 を入力します。

次にセルの書式設定で文字列にしておきます。

オートフィル機能を使って、20200131 まで引っ張って作成します。

複数フォルダを高速で作成する

次に 20200101 の隣のセルに以下のように入力します。

=”New-Item “& A1 &” -ItemType Directory”

あとは、このセルを同じようにオートフィル機能を使って、20200131 まで引っ張ります。

複数フォルダを高速で作成する

エディタを開いて、コピペします。

拡張子 ps1 で保存します。

念のため、PowerShell側で実行ポリシーを確認します(できることが幅広いため厳しい)。

Get-ExecutionPolicy

すると以下のようになりました。

RemoteSigned

PowerShell Core ということもあって、デフォルトで RemoteSigned(署名付きスクリプト、ローカル保存自作スクリプト実行可能)でした。

この状態だと問題なくスクリプトを実行できます。

ちなみに Windows PowerShell の場合、デフォルトは Restricted(すべてのスクリプトが実行禁止)なので、実行ポリシーを変更する必要があります。

先程、保存したスクリプト(拡張子 ps1)の先頭に以下のコマンドレットを追加しておきましょう。

Set-Location フォルダを作成したい場所のフルパス

フォルダを作成したい場所のフルパスは、自分の環境に合わせて入力してください。

あとは、保存して、PowerShell側で実行してあげれば、20200101~20200131 まで、合計31個のフォルダが一瞬で作成されます。

複数フォルダを高速で作成する

コマンドプロンプトでも実現可能

今回の内容は、コマンドプロンプトでも実現可能です。

20200101 の隣のセルに以下のように入力します。

"md "&A1

同じようにオートフィル機能を使って、20200131 まで引っ張ります。

エディタを開いて、コピペして、バッチファイルとして保存すれば完成です。

このバッチファイルは、フォルダを作成したい場所に置いてあげれば良いでしょう。

こちらの方がシンプルかもしれません。

最後に

いかがでしょうか。

PowerShell というよりは、Excel(エクセル)の凄さを実感したのではないでしょうか。

ただ、親切機能で書式が色々あるので、そこだけ注意が必要です。