バッチファイルの中でPowershellスクリプトから日付を取得する方法

バッチファイル

@echo off
FOR /F "usebackq" %%a IN (`powershell -command "Write-Output $((Get-Date).AddDays(-1)).ToString('yyyy/MM/dd')"`) DO (
    SET contents=%%a
)
echo %contents%

FOR /F "usebackq tokens=*" %%a IN (`powershell -command "Write-Output $(Get-Date).ToString('yyyy/MM/dd ddd HH:mm:ss')"`) DO (
    SET contents=%%a
)
echo %contents%
timeout /t 22

昨日の日付 と

今日の日付と時間 曜日

2025/01/30 木 14:38:07

詳細

日時のフォーマット指定、日時の計算、その他の日時関連コマンド、および日付・時刻の計算メソッドの情報を示します。


PowerShell での日時フォーマット指定

  • Get-Date コマンドレットは -Format パラメータを使用して表示フォーマットを指定します。
  • Now プロパティは toString メソッドを使用してフォーマットを指定します。

Windows形式の書式指定子 (-Format オプション)

  • yyyy または YYYY: 年(西暦4桁)
  • yy または YY: 年(西暦下2桁)
  • MM: 月(01~12)
  • dd: 日(01~31)
  • HH: 時(00~23)
  • hh: 時(01~12)
  • mm: 分(00~59)
  • ss: 秒(00~59)
  • d: 短い形式の日付パターン
  • D: 長い形式の日付パターン
  • t: 短い形式の時刻パターン
  • T: 長い形式の時刻パターン
  • dddd: 曜日(完全な形式)
  • ddd: 曜日(短縮形式)

UNIX形式の書式指定子 (-UFormat オプション)

  • %Y: 年(西暦4桁)
  • %y: 年(西暦下2桁)
  • %m: 月(01~12)
  • %B: 月(January~December)
  • %d: 日(01~31)
  • %H: 時(00~23)
  • %h: 時(01~12)
  • %M: 分(00~59)
  • %S: 秒(00~59)
  • %p: 午前/午後
  • %A: 曜日(完全な形式)
  • %a: 曜日(短縮形式)

日時の計算

PowerShellでは、以下の方法で昨日、明日、明後日、一か月前、来年、翌年などを計算できます。

  • Get-Date コマンドレットで本日の日付を取得し、AddDaysAddMonthsAddYearsを使用して計算します。
  • AddDays・・・日付の増減
  • AddMonths・・・月の増減
  • AddYears・・・年の増減

サンプルコード

# 昨日の日付
$yesterday = (Get-Date).AddDays(-1)
Write-Output "昨日の日付: $yesterday"

# 明日の日付
$tomorrow = (Get-Date).AddDays(1)
Write-Output "明日の日付: $tomorrow"

# 一か月前の日付
$lastMonth = (Get-Date).AddMonths(-1)
Write-Output "一か月前の日付: $lastMonth"

# 来年の日付
$nextYear = (Get-Date).AddYears(1)
Write-Output "来年の日付: $nextYear"

文字列内のコマンド結果の埋め込み

文字列内では $(コマンド) によりコマンドの結果を文字列で埋め込むことが可能です。

サンプルコード

Write-Output "今日の日付は $(Get-Date -Format 'yyyy/MM/dd') です。"

その他の日時関連コマンド

  • [datetime]::Now: 現在の日時を取得
  • [datetime]::Now.DayOfWeek: 曜日を取得

サンプルコード

$currentDateTime = [datetime]::Now
Write-Output "現在の日時: $currentDateTime"

$currentDayOfWeek = [datetime]::Now.DayOfWeek
Write-Output "今日は何曜日: $currentDayOfWeek"

日付・時刻の範囲計算

  • New-TimeSpan [[-Start] 開始日時] [[-End] 終了日時]: 日時の範囲を計算

サンプルコード

# 開始日時と終了日時のタイムスパンを取得
$start = Get-Date -Year 2024 -Month 1 -Day 1
$end = Get-Date -Year 2025 -Month 1 -Day 1
$timeSpan = New-TimeSpan -Start $start -End $end
Write-Output "タイムスパン: $timeSpan"

DateTimeクラスの計算メソッド

PowerShellで日付や時刻の計算を行う場合、DateTimeクラスの各種計算メソッドを使って加算・減算を行います。

メソッド一覧と用途

メソッド名用途
AddYears年の増減
AddMonths月の増減
AddDays日の増減
AddHours時間の増減
AddMinutes分の増減
AddSeconds秒の増減
AddMillisecondsミリ秒の増減

bat,PowerShell ,windows

Posted by eightban