web-dev-qa-db-ja.com

Powershellでyyyy-mm-ddのようなデフォルトの日付形式をセットアップしますか?

簡単で短い質問:

Yyyy-mm-ddのようにデフォルト日付形式をPowerShellで設定するにはどうすればよいですか?したがって、日付の出力はこの形式のようになりますか?

または1つのスクリプトで日付形式globallyを設定する方法は?

時間なしで日付のみを出力する方法はありますか? LastWriteTimeを出力すると、デフォルトは

13-03-2014 14:51

13-03-2014 だが 14:51

8
Root Loop

PowerShellの日付は、DateTimeオブジェクトです。特定の形式の日付文字列が必要な場合は、組み込みの文字列形式を使用します。

PS C:\> $date = get-date
PS C:\> $date.ToString("yyyy-MM-dd")
2014-04-02

ファイルのLastWriteTimeプロパティもDateTimeオブジェクトであり、文字列フォーマットを使用して、日付の文字列表現を任意の方法で出力できます。

あなたはこれをしたいです:

gci -recu \\path\ -filter *.pdf | select LastWriteTime,Directory

計算されたプロパティを使用できます。

get-childitem C:\Users\Administrator\Documents -filter *.pdf -recurse |
  select Directory, Name, @{Name="LastWriteTime";
  Expression={$_.LastWriteTime.ToString("yyyy-MM-dd HH:mm")}}

走る

help select-object -full

詳細については、計算されたプロパティについてお読みください。

11
Bill_Stewart

常に使用する場合は、。\ Documents\WindowsPowerShell\profile.ps1に追加できます

$culture = Get-Culture
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
Set-Culture $culture
4
Alban

私はこれを使用しました、それは私のために働きます、あなたのスクリプトの最初にそれをコピーしてください

$currentThread = [System.Threading.Thread]::CurrentThread
$culture = [CultureInfo]::InvariantCulture.Clone()
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
$currentThread.CurrentCulture = $culture
$currentThread.CurrentUICulture = $culture

cultureInfoのアセンブリの読み込みで問題が発生した場合(Windows 2008 Serverでこの問題が発生しました)、2行目を次のように変更します

$currentThread = [System.Threading.Thread]::CurrentThread
$culture = $CurrentThread.CurrentCulture.Clone()
$culture.DateTimeFormat.ShortDatePattern = 'dd-MM-yyyy'
$currentThread.CurrentCulture = $culture
$currentThread.CurrentUICulture = $culture
4
Mosè Bottacini