に書いていPowerShellスクリプトしていく必要とすることを参考に。 たとえば、特定の日付からWindowsイベントログを取得するスクリプトや、ファイルが作成された日付に基づいてエージングデータをアーカイブするスクリプ これらは、PowerShellスクリプト内で日付をどのように参照する必要があるかを示すいくつかの例にすぎません。, この記事では、PowerShellで日付を操作するためのいくつかのトリックを紹介します。
日付の取得
PowerShellに現在の日付を表示させるのは簡単です。 これを行うには、Get-Dateコマンドレットを入力するだけです。 特定の方法で日付を表示する必要がある場合、PowerShellにはさまざまなオプションが用意されています。 最も簡単な方法は、表示ヒントを使用することです。 DisplayHintパラメーターは、Date、Time、またはDateTimeに設定できます。 以下の図は、基本的なGet-Dateコマンドレットの動作と、DisplayHintパラメーターの使用例を示しています。,
出力をもう少し制御する必要がある場合は、FormatパラメータまたはUFormatパラメータを使用できます。 Formatパラメータは、比較を行うために日付を特定の形式にする必要がある場合に主に使用されます。 この記事ではFormatパラメーターを使用しませんが、その存在を認識することはまだ良い考えです。
UFormatパラメータは、表示目的でより多く使用されます。 それはあなたがあなたの選択の方法で日付と時刻を構成する様々な要素を配置することができます。, UFormatパラメータにさまざまな書式設定文字を追加するだけです。 使用できるパラメータは次のとおりです。
%M—月(数値として)
%D—日付
%Y—年
%A—曜日
%Z—UTCまたはズールー時間からのオフセットとして表されるタイムゾーン。 たとえば、-5は米国の東部標準時です。
UFormatパラメータがどのように機能するかの例を以下に見ることができます。
上の画像で注意を払う価値がある二つのことがあります。 まず、UFormatパラメーターの後に続くすべてのものが引用符で囲まれていることに気付きます。, これは、書式設定文字を指定するだけでなく、テキストも使用できるためです。 図では、テキストと書式設定の文字を混在させて使用しました。
気づくべきもう一つのことは、私は通常-5のタイムゾーンオフセットを持っている米国の東海岸に住んでいるにもかかわらず、上の図の出力は-4としてオフセットを示しているということです。 これは夏時間であるためです。 しかし、それを確認できるのはいいことではないでしょうか? 私たちは実際にできます。 これがどのように行われているかです:
$A=Get-Date
$A.,IsDaylightSavingTime()
下の画像でわかるように、PowerShellにはTrueの値が表示され、実際に夏時間であることを示します。
今年の日はどうですか?
PowerShellを使用して、それが何の日であるかを教えることもできます。 これがどのように機能するかです:
$A=Get-Date
$A.DayOfYear
本当に面白くしたい場合は、日付を指定して、その日付がどの日に当たるかを調べることができます。 指定する日付は、過去または未来にすることができます。 以下は例です:
Get-Date-Year2018-Month8-Daye22)。,DayOfYear
下の画像にいくつかの例を見ることができます。
日付の比較を行う
先ほど述べたように、PowerShellを使用して日付の比較を行うことは可能です。 -Formatパラメーターを使用すると、日付を別の値と比較する前に特定の形式にすることができますが、必ずしも必要ではありません。 たとえば、ファイルの書き込み日付を比較するには、特別な書式を使用する必要はありません。,
特定のファイルの最後の書き込み時間を選択した日付と時刻と比較して、ファイルが指定された日付よりも最近に書き込まれたかどうか
このような状況では、最初に行う必要があることは、目標日を変数にマップすることです。 デモのために、January2,2017(これはランダムな日付です)を変数A$にマッピングします。 次に、特定のファイルを変数にマップし、X$と呼びます。 その後、両者の間で比較を行うことが可能になります。, だからここに私が使用するコマンドがあります:
$A=(Get-Date-Year2017-Month01-Day02)
$A
$X=Get-ChildItem Readme。txt
$X.LastWriteTime
$X.LastWriteTime-GT$A
コードの最初の行は、$a変数をJanuary2、2017にマップします。 次の行は、変数に希望の日付が含まれていることを確認するだけです。 コードの第三行は、$X変数をReadMeという名前のファイルにマップします。テキスト 四行目には、ファイルの最後の書き込み時間が表示されます。 コードの最後の行は、二つの日付の比較を行います。, それは真のファイルがJanuary2、2017よりも最近に書かれたことが表示されます。 それ以外の場合は、Falseの値が表示されます。 以下の画面キャプチャは、この動作を示しています。 また、ファイルの最後の書き込み時間が(-LT)January2,2017より古いかどうかを確認するために別の行を追加したことにも気付くでしょう。 う二つの別々の比較できるとの比較をするのは今となっています。,
PowerShellの日付:詳細を学ぶために
PowerShellでは、実際には、この記事で話したことよりも、日付の書式設定と比較に関してはるかに多くのことを行うことができます。 PowerShellでの日付の使用について詳しく知りたい場合は、Get-Dateコマンドレットに関するMicrosoftのドキュメントを開始するのが良い場所です。