IT関連

PowerShellで日付出力したい

おはようございます。こんにちは。こんばんは。
ミッド(@mid_v_lab)です

PowerShellでの日付出力方法を何個かご紹介します。

日付出力方法を何個か知っていると、

  • ファイルを日付をつけてバックアップするとき
  • ログに日付を出力するとき
  • 過去日付を出したいとき

に便利です。

では、いってみましょう!

基本の型~Get-Date~

まずはPowerShellで日付を出力するときのコマンドを知らないと話になりません。

Get-Date』です。

PowerShellで実行してましょう。

PS C:\Windows\system32> Get-Date

2021年7月20日 20:37:32

こんな感じで実行時の日付が出てきます。

単純に現在の日付だけ知りたいならこれだけで事足りますが、

実際にはファイルに昨日日付や当日日付を付けたいので時刻が邪魔だったり、逆に時刻だけ欲しいなどの場合があります。

当日日付が欲しい場合は、

PS C:\Windows\system32> Get-Date -Uformat %Y%m%d
20210720

「Get-Date」の後に「-Uformat %Y%m%d」と付けてあげれば大丈夫です。

%Y%m%dの間に記号を入れてあげると、その記号が間に出力されます。

・スラッシュを入れる

PS C:\Windows\system32> Get-Date -Uformat %Y/%m/%d
2021/07/20

・カンマを入れる

PS C:\Windows\system32> Get-Date -Uformat %Y.%m.%d
2021.07.20

・ハイフンを入れる

PS C:\Windows\system32> Get-Date -Uformat %Y-%m-%d
2021-07-20

こんな感じで自分の表現したい形式にすればいいですね。

ちなみに時刻を出すときは

PS C:\Windows\system32> Get-Date -UFormat %H%M%S
204945

「Get-Date」の後に「-Uformat %H%M%S」と付けてあげれば大丈夫です。

時刻は上記のように区切りがないと非常に見ずらいので、間に記号を入れてあげた方が良いですね。

PS C:\Windows\system32> Get-Date -UFormat %H:%M:%S
20:51:07

こんな感じでしょうか。

ただファイル名に「:」はあまり向かないので、「-」がオススメです。

過去日付を取り出す

当日日付はOKですが、では過去日付を出す場合はどうしたらいいでしょう?

正解は、越後製菓!

ではなく、「AddDays」というメソッドを使ってあげることです。

こんな感じです。

PS C:\Windows\system32> (Get-Date).AddDays(-1)

2021年7月19日 20:52:42

Get-Dateをカッコで囲み、「.AddDays(-1)」で現在よりも1日前の日付を出すことが可能です。

Get-Dateに基本の型の「-Uformat」を利用するとエラーになるので、

PS C:\Windows\system32> (Get-Date).AddDays(-1).ToString(“yyyyMMdd”)
20210719

のように、メソッドの「ToString」を利用して、日付形式を変更してあげる必要があります。

ちょっとメンドクサイ感じですけど、これで前日日付も出力できました。

未来日付や前月なども取得可能

未来日付や前月といったデータも取得可能です。

未来日付は昨日日付とは逆で、

PS C:\Windows\system32> (Get-Date).AddDays(+1).ToString(“yyyyMMdd”)
20210721

AddDaysの数値を「+1」にしてあげればOK!

前月などはAddDaysのメソッドではなく、「AddMonths」メソッドを利用して、

PS C:\Windows\system32> (Get-Date).AddMonths(-1).ToString(“yyyyMMdd”)
20210620

上記のように指定してあげればOKです。


日付操作は基本ですが、出力できる形式を何個か知っていると、状況に適したフォーマットで出してあげることができるので、是非活用してみてください。

ではでは

にほんブログ村 サラリーマン日記ブログ IT系サラリーマンへ
PVアクセスランキング にほんブログ村