wanneer ik PowerShell-scripts schrijf, heb ik vaak ontdekt dat ik naar de datum moet verwijzen. Ik heb bijvoorbeeld af en toe scripts geschreven die Windows-gebeurtenislogboeken van een bepaalde datum halen of scripts die verouderingsgegevens archiveren op basis van de datum waarop een bestand is gemaakt. Dat zijn slechts een paar voorbeelden van hoe de datum moet worden verwezen in een PowerShell script., In dit artikel wil ik je een paar trucs laten zien voor het werken met datums in PowerShell.

het ophalen van de datum

Het is eenvoudig om PowerShell de huidige datum te laten weergeven. Voer hiervoor de Get-Date cmdlet in. Als u de datum op een bepaalde manier wilt weergeven, biedt PowerShell een aantal verschillende opties om dit te doen. De eenvoudigste methode is om een display hint te gebruiken. De DisplayHint parameter kan worden ingesteld op datum, tijd, of DateTime. De afbeelding hieronder laat zien hoe de basis Get-Date cmdlet werkt, en een paar voorbeelden van het gebruik van de DisplayHint parameter.,

als je wat meer controle over de uitvoer nodig hebt, kun je de Format parameter of de UFormat parameter gebruiken. De Opmaakparameter wordt meestal gebruikt wanneer u de datum in een bepaald formaat moet zetten om een vergelijking te maken. We zullen de Format parameter in dit artikel niet gebruiken, maar het is nog steeds een goed idee om bewust te zijn van het bestaan ervan.

De parameter UFormat wordt meer gebruikt voor weergavedoeleinden. Hiermee kunt u de verschillende elementen die deel uitmaken van de datum en tijd te regelen op een manier van uw keuze., Het enige wat je hoeft te doen is om verschillende opmaak tekens toe te voegen aan de UFormat parameter. De parameters die u kunt gebruiken zijn:

% M-Month (as a number)
%D — Date
%Y — Year
%A — de dag van de week
%Z — de tijdzone, uitgedrukt als een verschuiving van UTC-of Zulu-tijd. Bijvoorbeeld, -5 is Oostelijke Tijd in de Verenigde Staten.

u kunt hieronder een voorbeeld zien van hoe de parameter UFormat werkt.

er zijn twee dingen die de moeite waard zijn aandacht aan te besteden in de afbeelding hierboven. Ten eerste zult u merken dat alles wat de UFormat parameter volgt tussen aanhalingstekens is ingesloten., Dit komt omdat ik niet alleen opmaaktekens opgeef, ik kan ook tekst gebruiken. In de figuur gebruikte ik een mengsel van tekst-en opmaaktekens.

het andere ding om op te merken is dat hoewel ik aan de oostkust van de Verenigde Staten woon, die normaal gesproken een tijdzone offset van -5 heeft, de output in de bovenstaande figuur de offset als -4 toont. Dit komt omdat het zomertijd is. Maar zou het niet leuk zijn om dat te kunnen verifiëren? Dat kunnen we wel. Dit is hoe het moet:

$a = Get-Date
$A.,IsDaylightSavingTime ()

zoals u kunt zien in de afbeelding hieronder, PowerShell toont een waarde van True, wat aangeeft dat het inderdaad zomertijd.

hoe zit het met de dag van het jaar?

We kunnen PowerShell ook gebruiken om ons te vertellen welke dag van het jaar het is. Dit is hoe dat werkt:

$A=Get-Date
$A. DayOfYear

Als u het echt interessant wilt maken, kunt u echter een datum opgeven om uit te vinden op welke dag van het jaar die datum valt. De datum die u opgeeft kan verleden of toekomst zijn. Hier is een voorbeeld:

Get-Date-Year 2018-Month 8-Daye 22).,DayOfYear

u kunt een paar voorbeelden zien in de afbeelding hieronder.

datumvergelijkingen maken

zoals ik al eerder zei, is het mogelijk om PowerShell te gebruiken om datumvergelijkingen te maken. Hoewel u de parameter-Format kunt gebruiken om de datum in een specifiek formaat te plaatsen voordat u deze vergelijkt met een andere waarde, is dit niet altijd nodig. Het vergelijken van schrijfdatums voor bestanden vereist bijvoorbeeld geen speciale opmaak.,

laten we even aannemen dat u de laatste schrijftijd voor een bepaald bestand wilde vergelijken met een datum en tijd van uw keuze om te zien of het bestand recenter is geschreven dan de opgegeven datum.

in een situatie als deze, is het eerste wat we moeten doen het toewijzen van onze doeldatum aan een variabele. Omwille van de demonstratie, zal ik kaart 2 januari 2017 (Dat is een willekeurige datum), naar de variabele a$. Ik zal dan een bepaald bestand toewijzen aan een variabele, die Ik X$zal noemen. Op die manier kunnen deze twee zaken met elkaar worden vergeleken., Dus hier zijn de commando ‘ s die ik ga gebruiken:

$a = (Get-Date-Year 2017-Month 01-Day 02)
$a
$X = Get-ChildItem Readme.txt
$X. LastWriteTime
$X. LastWriteTime-GT $A

de eerste regel code wijst de $A variabele aan op 2 januari 2017. De volgende regel controleert eenvoudig of de variabele de gewenste datum bevat. De derde regel code wijst de $X variabele toe aan een bestand met de naam ReadMe.txt. De vierde regel toont de laatste schrijftijd voor het bestand. De laatste regel van de code maakt een vergelijking tussen de twee data., Het zal laten zien waar is het bestand werd meer recent geschreven dan Januari 2, 2017. Anders zal het een waarde van False tonen. De schermopname hieronder toont dit in actie. U zult ook merken dat ik een andere regel heb toegevoegd om te controleren of de laatste schrijftijd van het bestand ouder is dan (-LT) 2 januari 2017. Het maken van twee afzonderlijke vergelijkingen maakt het mogelijk om te zien dat de vergelijking echt doet wat het moet doen.,

datums in PowerShell: meer te leren

PowerShell stelt u in feite in staat om veel meer te doen met betrekking tot datumopmaak en vergelijkingen dan waar ik het in dit artikel over heb gehad. Als u meer wilt weten over het gebruik van datums in PowerShell, is de documentatie van Microsoft voor de Get-Date cmdlet een goede plek om te beginnen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *