Windows PowerShellの勉強その4

その1、その2ではイベントログをcsv形式にエクスポートしてみた。
その3では条件に一致するファイル一覧を取得した。
今回、その4では日付や時刻の取得をしてみる。

従来のコマンドプロンプトであれば、コマンドのdate /tやtime /t、あるいは環境変数の%date%や%time%を使って日付や時刻を取得するが、同様のことをPowerShellでやってみる。


日付と時刻を取得するコマンドは何だろう?。
きっとget-何とかで始まるコマンドレットだろう。
これでget動詞を持つコマンドレットの一覧が表示される。
PS C:\> get-command -verb get

CommandType Name                         Definition
----------- ----                         ----------
Cmdlet      Get-Acl                      Get-Acl [[-Path] <String[]>] [-Au...
Cmdlet      Get-Alias                    Get-Alias [[-Name] <String[]>] [-...
Cmdlet      Get-AuthenticodeSignature    Get-AuthenticodeSignature [-FileP...
Cmdlet      Get-ChildItem                Get-ChildItem [[-Path] <String[]>...
Cmdlet      Get-Command                  Get-Command [[-ArgumentList] <Obj...
Cmdlet      Get-Content                  Get-Content [-Path] <String[]> [-...
Cmdlet      Get-Credential               Get-Credential [-Credential] <PSC...
Cmdlet      Get-Culture                  Get-Culture [-Verbose] [-Debug] [...
Cmdlet      Get-Date                     Get-Date [[-Date] <DateTime>] [-Y...
Cmdlet      Get-EventLog                 Get-EventLog [-LogName] <String> ...
Cmdlet      Get-ExecutionPolicy          Get-ExecutionPolicy [-Verbose] [-...
Cmdlet      Get-Help                     Get-Help [[-Name] <String>] [-Cat...
Cmdlet      Get-History                  Get-History [[-Id] <Int64[]>] [[-...
Cmdlet      Get-Host                     Get-Host [-Verbose] [-Debug] [-Er...
Cmdlet      Get-Item                     Get-Item [-Path] <String[]> [-Fil...
Cmdlet      Get-ItemProperty             Get-ItemProperty [-Path] <String[...
Cmdlet      Get-Location                 Get-Location [-PSProvider <String...
Cmdlet      Get-Member                   Get-Member [[-Name] <String[]>] [...
Cmdlet      Get-PfxCertificate           Get-PfxCertificate [-FilePath] <S...
Cmdlet      Get-Process                  Get-Process [[-Name] <String[]>] ...
Cmdlet      Get-PSDrive                  Get-PSDrive [[-Name] <String[]>] ...
Cmdlet      Get-PSProvider               Get-PSProvider [[-PSProvider] <St...
Cmdlet      Get-PSSnapin                 Get-PSSnapin [[-Name] <String[]>]...
Cmdlet      Get-Service                  Get-Service [[-Name] <String[]>] ...
Cmdlet      Get-TraceSource              Get-TraceSource [[-Name] <String[...
Cmdlet      Get-UICulture                Get-UICulture [-Verbose] [-Debug]...
Cmdlet      Get-Unique                   Get-Unique [-InputObject <PSObjec...
Cmdlet      Get-Variable                 Get-Variable [[-Name] <String[]>]...
Cmdlet      Get-WmiObject                Get-WmiObject [-Class] <String> [...

おお、Get-Dateがあるなあ。
でもGet-Timeは無いらしい。


ではGet-Dateの詳細を。
PS C:\> get-help get-date -detailed

名前
    Get-Date

概要
    現在の日付と時刻を取得します。

構文
    Get-Date [[-date] <DateTime>] [-displayHint {<Date> | <Time> | <DateTime>}]
     [-format <string>] [-year <int>] [-month <int>] [-day <int>] [-hour <int>]
     [-minute <int>] [-second <int>] [<CommonParameters>]

    Get-Date [[-date] <DateTime>] [-displayHint {<Date> | <Time> | <DateTime>}]
     [-uFormat <string>] [-year <int>] [-month <int>] [-day <int>] [-hour <int>
    ] [-minute <int>] [-second <int>] [<CommonParameters>]


詳細説明
    現在の日付と時刻を取得します。



以下省略





get-dateのフォーマットは
PS C:\> get-date |format-list

DisplayHint : DateTime
DateTime    : 2009年9月19日 22:38:31
Date        : 2009/09/19 0:00:00
Day         : 19
DayOfWeek   : Saturday
DayOfYear   : 262
Hour        : 22
Kind        : Local
Millisecond : 107
Minute      : 38
Month       : 9
Second      : 31
Ticks       : 633889967111073705
TimeOfDay   : 22:38:31.1073705
Year        : 2009



ではこの中から時刻だけを取り出したいとか、年月日の日だけを取り出したい場合はどうするのだろう?。
答えはget-dateをカッコで囲んで、右側に.項目名を指定するらしい。
こんな感じ。
PS C:\> (get-date).DateTime
2009年9月19日 22:56:35

PS C:\> (get-date).date
2009年9月19日 0:00:00

PS C:\> (get-date).year
2009
PS C:\> (get-date).month
9
PS C:\> (get-date).day
19



この辺まではなんとなくわかる。
しかし年月日だけとか、時分秒だけ取り出す方法は?。
試しにTimeOfDayを見てみると、
PS C:\> (get-date).TimeOfDay

Days              : 0
Hours             : 22
Minutes           : 54
Seconds           : 50
Milliseconds      : 775
Ticks             : 824907751365
TotalDays         : 0.954754341857639
TotalHours        : 22.9141042045833
TotalMinutes      : 1374.846252275
TotalSeconds      : 82490.7751365
TotalMilliseconds : 82490775.1365
さらに下位の項目が現れてきた。
ここに時、分、秒はそれぞれ別項目として存在する。
時分秒のまとまった項目はなさそうだ。



この方法で時、分、秒がそれぞれ別項目として取得できる
PS C:\> (get-date).TimeOfDay.Hours
23
PS C:\> (get-date).TimeOfDay.Minutes
2
PS C:\> (get-date).TimeOfDay.Seconds
26
3つあわせれば23時02分26秒だ、確かに。
しかし時、分、秒を別々に取得してわざわざそれをつなぎ合わせる必要があるのかな?。



答えはなんと、DisplayHintにさらにオプションを指定するらしい。
PS C:\> get-date -DisplayHint datetime
2009年9月19日 23:50:58

PS C:\> get-date -DisplayHint date
2009年9月19日

PS C:\> get-date -DisplayHint time
23:51:05
ちょっとわかりにくいな。



さて、やっと本題。
日付や時刻を取得して、それをファイル名にするための方法は?。
それは-formatオプションで指定できる。
PS C:\> get-date –format yyyyMMdd
20090920
PS C:\> get-date –format hhmmss
012931
PS C:\> get-date –format yyyyMMdd-hhmmss
20090920-012939
PS C:\>
これでログファイル名などに、「年月日-時分秒」を簡単に付けることができる。



ちなみに引数で指定する大文字のMMは月で、小文字のmmは分と明確に決まっている。
PS C:\> get-date –format MM
09
PS C:\> get-date –format mm
32
大文字のMMは09月、小文字のmmは32分を示している。



今回参考にしたWebページは、これらです。

 


http://journal.mycom.co.jp/articles/2009/04/24/powershell/001.html
・【ハウツー】ゼロからはじめるWindows PowerShell - コマンドレット編 (2) コマンドレットを理解しよう.2 | パソコン | マイコミジャーナル
http://sawano.members.icraft.jp/wp/2008/07/24/334.html
・Windows、PowerShellでYYYYMMDD « SawanoBlog.
http://www.microsoft.com/japan/technet/scriptcenter/topics/winpsh/convert/day.mspx
・スクリプトセンター > VBScript から Windows PowerShell へ > VBScript の Day 関数の変換

 

関連記事

コメントの投稿

非公開コメント

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発していた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
最近はWindowsサーバーとVMware vSphereを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
03 | 2023/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server PowerShell VMware_Player PowerCLI vSphere_Client VirtualCenter Active_Directory vStorage_API Converter 文音 コズミック☆倶楽部 Windows Hyper-V Microsoft_Security_Essentials あいひょん なるみん SQL_Server Windows_8 vSphere VMware_Converter Backup_Exec VMware_vSphere カラオケ sora VCB System_Center 麗美 Red_Hat_Enterprise_Linux Windows_Server_2012 Tech_Fielders System_Recovery ARCserve_Backup メモリダンプ ESX remi RHEL VMware_ESXi Internet_Explorer Exec Server Oracle Active ジン子 Symantec Backup Directory vSphere_CLI Firefox マークス DMC-FZ1000 VMware_HA vMotion Twitter System DRS Vista schtasks SE XenServer 氷結 Office キリン 若手 NTFS Recovery sonoka エミリースタイラー Emily_Styler  路上ライブ Sysinternals コズミック倶楽部 イチトキ vCenter_Converter Oracle_Database wevtutil Windows_Update Visual_Studio ベビースター おやつカンパニー カルディ スパークリングウォーター 経済産業省 corega 白石美帆 えびしお おとなのおつまみ ラガー セキュリティ スリムス サッポロ のどごし生 一番搾り食物繊維 糖質 カーナビ 東京国際フォーラム ついにステップワゴンを契約してしまった サクセス 2008 CDRW-AB24JL CD CAB Brio CG CR-V フィット DVD CoolMax ATAPI 0x0000007B エイドリアン バルボア ロッキー スタローン オレッツァ 破損 コマンドライン 圧縮 修復 スパリゾートハワイアンズ お茶のチューハイ ジョシュ・ハートネット シャンプー台のむこうに デュポン ワイヤーアクション ブラックホーク・ダウン コロン 北野 神戸 ハワイ ムエタイ マッハ けんけつちゃん 献血 Gathers ポケモン・スタンプラリー はばたき福祉事業団 日本赤十字社 映画 東京タワー 写真 ウォーター グレープフルーツ カーポート 高原 バーベキュー 鬼押し出し園 雨どい 掃除 洗濯 セルシオ グランダム 草津 キャンプ サーバ 人口甘味料 伊藤園  羽田 万座温泉 夏休み 関西空港 洗車 Windows_Azure vSphere_Web_Client FZ1000 LUMIX Panasonic Windows_Server_2016 コズミック☆LOVE こずくら 加藤成実 エミリー・スタイラー Intel wbadmin OneDrive 浜田省吾 Linux IP38X/N500 HUAWEI GR5 Windows_Serverバックアップ Paper.li れみ -ayane- つりあやめ α7III BEACHEND_CAFE 三浦半島 三浦海岸 A7III A036 SHOWROOM だんごちゃん A056 ちばかわいいくらぶ ツイート Wataru_Sato シンガーソングライター REAN 佐藤航 cana 動画 チャンカナ canaguitar NVR500 AWS Thunderbird SweetGrass SUPPLEX STOPエラー Tools USB Word Uptime.exe USB2.0 SAP Resource NR-7900A Kit IZZE IDE NetBackup OREZZA Replication PCI PC-Success XP ULPC Apache グループポリシー SkyDrive vStorag_API OpenOffice Tween robocopy iStorage バッチ Virtual_Infrastructure バックアップ ITIL DSP OEM ジャンプフェスタ OpenOffice.org ARCserve_D2D ARCserve_Replication VMFS Hyperion 

月別アーカイブ
リンク
RSSフィード