🌟

【PowerShell】年月日の日付フォルダをつくってみた

2023/09/15に公開

1.記事を読んでできるようになること

例えば、以下のような課題をサクッと解決できる。

  • 2013年から2023年のフォルダを作って、各フォルダの中に1月~12月のフォルダを作りたい。
  • さらに月フォルダの中に日数フォルダも作りたい。ただし、うるう年なども考慮して日数フォルダを作りたい。

2.処理の流れ

  • 作成したい年月日の開始~終了日を用意する。
  • 開始日の年、月、日を取得し変数に格納する。
  • 変数名のフォルダを作成する。
  • 日付をインクリメントして終了日までフォルダ作成をループする。

3.作成したコード

make_dateDir.ps1
#フォルダ作成先を設定
$path = "C:\Work\Test"
if (!(Test-Path $path)){
    New-Item $path -ItemType Directory | Out-Null
}

#作成するフォルダの開始日と終了日を設定
$start_day = [Datetime]"2013/01/01"
$stop_day = [Datetime]"2023/12/31"

#年月日フォルダ作成
for ($i = 0; $start_day.AddDays($i) -le $stop_day ; $i++) {
    $tmp_day = $start_day.AddDays($i).ToString("yyyyMMdd")
    $y = $tmp_day.Substring(0, 4)
    $m = $tmp_day.Substring(4, 2)
    $d = $tmp_day.Substring(6, 2)
    $dir = Join-Path $path $y | Join-Path -ChildPath $m | Join-Path -ChildPath $d
    if (!(Test-Path $dir)) {
        New-Item $dir -ItemType Directory | Out-Null
    }
}

4.できあがるもの

問題なく年月日ごとにフォルダが作成された。
うるう年の対応もバッチリ。


5.参照リンク

https://learn.microsoft.com/ja-jp/dotnet/api/system.datetime.adddays?view=net-7.0

Discussion