VBScript から Windows PowerShell へ

VBScript の Weekday 関数の変換


Windows PowerShell


定義: 何曜日であるかを表す整数を返します。

*

Weekday

何曜日かを表す整数値を取得する (つまり、"金曜日" の代わりに 6 を取得する) ようなことはあまり必要がないと思われます。実を言うと Windows PowerShell にこうした処理を行う方法が組み込まれているかどうかはわかりません。ただし、.NET Framework の Microsoft.VisualBasic.DateAndTime クラスと DatePart 関数を使えば実現できます。次の 3 つのコマンドは、現在の日付と時刻を変数 $a に代入し、Microsoft.VisualBasic アセンブリをロードして、DatePart 関数を使って曜日を表す整数値を返します。DatePart 関数には 2 つのパラメータが必要です。

w は曜日を取得する目的であることを示しています。

$a は調べる日付です。

コマンドは次のようになります。

$a = get-date
[reflection.assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[Microsoft.VisualBasic.DateAndTime]::DatePart("w",$a)

次に紹介するような別の方法もあります。

Get-Date コマンドレットは、DayOfWeek プロパティを持つ System.DateTime オブジェクトを返します。このプロパティは列挙 (それぞれの値が何かを表す一連の番号) で、0 は日曜日、1 は月曜日という順番になります。「(Get-Date).DayOfWeek」と入力すると、曜日を表すテキストが表示されます。曜日に対応する数値を取得するには、次のように入力する必要があります。

(Get-Date).DayOfWeek.Value__ 

: 「Value」の後ろにはアンダースコアが 2 つ必要です。

言うまでもなく、DayOfWeek の列挙は日曜日を表す 0 から始まるので (1ではありません)、VBScript の関数と同じ結果を得るには、このコマンドの末尾に 1 を加える必要があります。

(Get-Date).DayOfWeek.Value__ + 1

このコマンドを金曜日に実行すると、次の結果が得られます。

6


「VBScript から Windows PowerShell へ」ホーム ページに戻る


ページのトップへページのトップへ