簡単で短い質問:
Yyyy-mm-ddのようにデフォルト日付形式をPowerShellで設定するにはどうすればよいですか?したがって、日付の出力はこの形式のようになりますか?
または1つのスクリプトで日付形式globallyを設定する方法は?
時間なしで日付のみを出力する方法はありますか? LastWriteTimeを出力すると、デフォルトは
13-03-2014 14:51
13-03-2014
だが 14:51
。
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
詳細については、計算されたプロパティについてお読みください。
常に使用する場合は、。\ Documents\WindowsPowerShell\profile.ps1に追加できます
$culture = Get-Culture
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
Set-Culture $culture
私はこれを使用しました、それは私のために働きます、あなたのスクリプトの最初にそれをコピーしてください
$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