amikor írok PowerShell szkriptek, gyakran találtam, hogy meg kell hivatkozni a dátumot. Például, én néha írt szkriptek, hogy húzza a Windows esemény naplók egy adott időpontban, vagy szkriptek archiválni öregedési adatok alapján a dátumot, amikor egy fájl jött létre. Ezek csak néhány példa arra, hogy a dátumot hogyan kell hivatkozni egy PowerShell szkriptben., Ebben a cikkben szeretnék megmutatni néhány trükköt a PowerShell dátumokkal való munkavégzéshez.
A dátum visszakeresése
egyszerű, hogy a PowerShell megjelenítse az aktuális dátumot. Ehhez csak adja meg a Get-Date cmdlet. Ha bizonyos módon meg kell jelenítenie a dátumot, akkor a PowerShell számos különböző lehetőséget kínál erre. A legegyszerűbb módszer a megjelenítési tipp használata. A DisplayHint paraméter beállítható dátumra, időre vagy DateTime-ra. Az alábbi képen látható, hogyan működik az alap Get-Date parancsmag, valamint néhány példa a DisplayHint paraméter használatára.,
Ha egy kicsit több vezérlésre van szüksége a kimenet felett, használhatja a Format paramétert vagy az UFormat paramétert. A Formátumparamétert leginkább akkor használják, ha összehasonlításhoz a dátumot egy bizonyos formátumba kell helyezni. Nem fogjuk használni a Formátum paramétert ebben a cikkben, de még mindig jó ötlet, hogy tisztában legyünk annak létezésével.
az UFormat paramétert inkább megjelenítési célokra használják. Ez lehetővé teszi, hogy gondoskodjon a különböző elemek teszik ki a dátumot és az időt oly módon, a választott., Mindössze annyit kell tennie, hogy különféle formázási karaktereket csatol az UFormat paraméterhez. A használható paraméterek a következők:
% M-hónap (számként)
% D-Dátum
% Y — év
%a-A hét napja
% Z-Az időzóna, UTC vagy Zulu idő eltolódásaként kifejezve. Például -5 Keleti idő az Egyesült Államokban.
az alábbiakban egy példát láthat az UFormat paraméter működéséről.
két dolgot érdemes figyelni a fenti képen. Először észre fogod venni, hogy az UFormat paramétert követő minden idézőjelbe van zárva., Ez azért van, mert nem csak formázási karaktereket adok meg, hanem szöveget is használhatok. Az ábrán szöveges és formázó karakterek keverékét használtam.
a másik dolog, amit észre kell venni, hogy annak ellenére, hogy az Egyesült Államok keleti partján élek, amely általában -5 időzóna-eltolással rendelkezik, a fenti ábrán látható kimenet -4 eltolást mutat. Ez azért van, mert ez a nyári időszámítás. De nem lenne jó, ha ezt igazolnánk? Tényleg megtehetjük. Így történik:
$a = Get-Date
$A.,IsDaylightSavingTime ()
amint az az alábbi képen látható, a PowerShell True értéket mutat, jelezve, hogy valóban nyári időszámítás.
mi a helyzet az év napjával?
a PowerShell segítségével elmondhatjuk, hogy az év melyik napja van. Itt van, hogyan működik:
$a = Get-Date
$A. DayOfYear
ha igazán szeretné, hogy a dolgok érdekes, bár, megadhat egy dátumot, hogy megtudja, milyen nap az év, hogy a dátum esik. A megadott dátum lehet múlt vagy jövő. Íme egy példa:
Get-Date-év 2018-hónap 8-Daye 22).,DayOfYear
az alábbi képen néhány példát láthat.
dátum-összehasonlítások készítése
ahogy korábban említettem, a PowerShell segítségével dátum-összehasonlításokat lehet végezni. Bár a-Format paraméter segítségével a dátumot egy adott formátumba helyezheti, mielőtt összehasonlítaná egy másik értékkel, ez nem mindig szükséges. Például a fájlírási dátumok összehasonlítása nem igényel speciális formázást.,
tegyük fel egy pillanatra, hogy egy adott fájl utolsó írási idejét az Ön által választott dátumhoz és időponthoz szeretné összehasonlítani, hogy a fájl a megadott dátumnál újabban lett-e megírva.
egy ilyen helyzetben az első dolog, amit meg kell tennünk, hogy a cél dátumunkat egy változóra térképezzük. A demonstráció kedvéért 2017.január 2-át (ami véletlenszerű dátum) térképezem fel az a$változóra. Ezután egy adott fájlt leképezek egy változóra, amelyet X$ – nak hívok. Ezután összehasonlításokat lehet végezni a kettő között., Tehát itt vannak a parancsok, amelyeket használni fogok:
$a = (Get-Date-év 2017-hónap 01-nap 02)
$a
$x = Get-ChildItem Readme.txt
$X. LastWriteTime
$ X. LastWriteTime-GT $ A
az első kódsor a $a változót 2017.január 2-ig térképezi. A következő sor egyszerűen ellenőrzi, hogy a változó tartalmazza a kívánt dátumot. A harmadik kódsor a $X változót egy ReadMe nevű fájlra térképezi.txt. A negyedik sor megjeleníti a fájl utolsó írási idejét. A kód utolsó sora összehasonlítja a két dátumot., Igaz lesz, hogy a fájlt nemrégiben írták, mint 2017. január 2-án. Ellenkező esetben hamis értéket fog mutatni. Az alábbi képernyőfelvétel ezt a műveletet mutatja. Azt is észre fogod venni, hogy hozzáadtam egy másik sort, hogy ellenőrizhessem, hogy a fájl utolsó írási ideje régebbi-e (- LT) 2017.január 2. Két külön összehasonlítás elvégzése lehetővé teszi annak megállapítását, hogy az összehasonlítás valóban azt teszi, amit tennie kell.,
dátumok PowerShellben: További információ
a PowerShell valójában sokkal többet tesz a dátum formázásával és összehasonlításával kapcsolatban, mint amiről ebben a cikkben beszéltem. Ha többet szeretne megtudni a dátumok PowerShellben történő használatáról, jó hely a kezdéshez a Microsoft dokumentációja a Get-Date parancsmaghoz.