文字列を使いこなす ~その1~

・文字配列を作る

文字列をカンマで区切って変数に代入します。

$fruit = "Apple","Banana","Orange"

$fruit[0]にはApple, $fruit[1]にはBanana, $fruit[2]にはOrangeが格納されます。

・文字配列を連結して1つの文字列にする

stringクラスのJoinメソッドを使用して連結することができます。

Joinメソッドの第1引数には文字列を連結するときの文字を、第2引数には配列変数を指定します。

下記を実行すると、Apple-Banana-Orangeという文字列が作成されます。

[string]::Join("-",$fruit)

文字列を分割する

文字列はsplitメソッドで分割することができます。引数には分割に使用する文字を指定します。
たとえば、先ほど作成した”Apple-Banana-Orange”を”-“で分割するには、下記のようにします。

"Apple-Banana-Orange".Split("-")

文字列を使いこなす1

月の最終日を求めるには

Get-Dateコマンドレットを使用して月の最終日を求める方法を紹介します。

最終日は、「翌月の1日の前の日」で求めることができます。

たとえば、今現在が6月13日であるとすれば、翌月の1日は7月1日となります。

なので7月1日の前日が今月の最終日となります。

これをPowerShellで表すには、まず Get-Dateコマンドレットの-Dayパラメータに1を指定して、今月の1日を取得します。

(Get-Date -Day 1)

次に、AddMonthsメソッドを使用して今月の1日からみた1ヶ月後(要するに翌月の1日)を求めます。

(Get-Date -Day 1).AddMonths(1)

最後に、AddDaysメソッドを使用して翌月の1日からみた1日前を求めます。

(Get-Date -Day 1).AddMonths(1).AddDays(-1)

最終日を求める例

 

上記を応用すれば下記のようにして、先月の最終日、来月の最終日を求めることができます。

・先月の最終日

(Get-Date -Day 1).AddDays(-1)

・来月の最終日

(Get-Date -Day 1).AddMonths(2).AddDays(-1)

日付取得で使える便利なメソッドまとめ

PowerShellで日付を取得するにはGet-Dateコマンドレットを使用します。

Get-Dateが返す値はDateTime構造体なので、DateTime構造体が持つメソッドを使用することができます。

N秒後、N分後、N時間後のように、未来を取得するにはAddが付くメソッドを使用します。

メソッド 説明
AddDays 現在日時に指定した日数を加算します
AddHours 現在日時に指定した時間を加算します
AddMilliseconds 現在日時に指定したミリ秒を加算します
AddMonths 現在日時に指定した月数を加算します
AddSeconds 現在日時に指定した秒を加算します
AddYears 現在日時に指定した年数を加算します

たとえば、2ヶ月後を求めたい場合はAddMonthsメソッドの引数に2を渡します。

(Get-Date).AddMonths(2)

2ヶ月前を求めることも可能で、この場合は-2を指定します。

(Get-Date).AddMonths(-2)

日付のみ、時間のみを文字列として取得することも可能です。

日付のみを文字列として取得したい場合はToShortDateStringメソッドを使用します。

(Get-Date).ToShortDateString()

時刻のみを文字列として取得したい場合はToShortTimeStringメソッドを使用します。

(Get-Date).ToShortTimeString()

任意の書式で日付を出力したい場合はToStringメソッドを使用します。

ToStringメソッドの引数には、様々な書式を指定することができます。指定可能な書式についてはhttp://msdn.microsoft.com/ja-jp/library/8kb3ddd4(v=vs.80).aspxを参照ください。

たとえば年4桁月2桁日2桁で出力したい場合には下記のようにします。

(Get-Date).ToString("yyyy年MM年dd日")

日付取得メソッドまとめ

ネットワークアダプタの名称を変更する

Rename-NetAdapterコマンドレットを使用すると、ネットワークアダプタの名称を変更することが可能です。

前回紹介したGet-NetAdapterコマンドレットを使用して、現在のネットワークアダプタ情報を取得して、パイプでRename-NetAdapterコマンドレットに渡すのが簡単でしょう。名称を変更する場合は-NewNameパラメータを使用します。

下記に使用例を示します。
*PowerShellは管理者モードで実行する必要があります。実行結果の責任は負いかねますので、注意願います。

Get-NetAdapter | Rename-NetAdapter -NewName マイネット

ネットワークアダプタの名称と説明を取得する

Get-NetAdapterコマンドレットを使用すると、ネットワークアダプタに関する情報を取得することができます。

ネットワークアダプタの名称と説明を取得するには、下記のようにします。

Get-NetAdapter | Format-Table Name, InterfaceDescription