2017-10-21 50 views
1

Mes collègues collègues stackoverflow,Format de l'heure en PowerShell

J'aime que le script PowerShell suivant s'affiche sans la partie de date de la table.


10/21/2017 16:49 | Systrax Restore Point 

Actuellement, la sortie est:

@{Date=10/21/2017 12:40} | Systrax Auto Restore Point 

Cela fait partie de mon script:

$creationtime = Get-ComputerRestorePoint | Select-Object @{Label="Date"; Expression={"{0:MM/dd/yyyy HH:mm}" -f $_.ConvertToDateTime($_.CreationTime)}} 
$restorepoint = (Get-ComputerRestorePoint).Description 
if ($restorepoint -eq $null){ 
Enable-ComputerRestore -Drive "C:\" 
Checkpoint-Computer "Systrax Auto Restore Point" 
Write-Host "No restore points, Auto Creating..." 
Exit 1010 
} 
else { 
Write-Host "$creationtime | $restorepoint" 
Exit 0 
} 
+0

double possible de [Etant donné un objet DateTime, comment puis-je obtenir une date ISO 8601 en format de chaîne de caractères?] (https://stackoverflow.com/questions/114983/given-a-datetime-object-how-do-i-get-an-iso-8601-date-in-string- format) – Tomalak

+0

Un autre doublon. https://stackoverflow.com/questions/2249619/how-to-format-a-datetime-in-powershell, parmi beaucoup d'autres. S'il vous plaît chercher avant de demander. Documentation pertinente https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings (En outre, 'mm/jj/aaaa 'n'est pas un format de date sensé, éviter.) – Tomalak

+0

got it (Get-ComputerRestorePoint) .CreationTime, (Get-date) .toString ('aaaa-MM-dd) Mais sa sortie encore timeformat originale 20171021104047.441419-000 2017-10 -21 – IIIdefconIII

Répondre

0

Vous pouvez utiliser l'opérateur de format -f pour formater l'objet DateTime résultat votre propriété calculée:

... |Format-Table @{Label="Date"; Expression={"{0:MM/dd/yyyy HH:mm}" -f $_.ConvertToDateTime($_.CreationTime)}} 

Une autre option appelle ToString() sur l'objet:

... |Format-Table @{Label="Date"; Expression={$_.ConvertToDateTime($_.CreationTime).ToString("MM/dd/yyyy HH:mm")}} 

Ou vous pouvez Get-Date le faire pour vous:

... |Format-Table @{Label="Date"; Expression={$_.ConvertToDateTime($_.CreationTime) |Get-Date -Format "MM/dd/yyyy HH:mm"}} 
+0

Merci mais cela n'a pas fonctionné: encore obtenir l'heure en format illisible 20171021104047.441419-000 '' '(Get-ComputerRestorePoint) .CreationTime | Format-Table @ {Label = "Date"; Expression = {"{0: MM/jj/aaaa HH: mm}" -f $ _. ConvertToDateTime ($ _. CreationTime)}} ' – IIIdefconIII

+0

' Get-ComputerRestorePoint | Format-Table ... ', pas' (Get-ComputerRestorePoint) .CreationTime | ... ' –

+0

soit damné, cool cette cause l'information est dans la table, l'ai eue, mais j'ai toujours une table et je veux la plaine d'outplain est-ce même possible? ty – IIIdefconIII