Kun kirjoitan PowerShell skriptejä, olen usein havainnut, että minun täytyy viittaus päivämäärä. Esimerkiksi, olen joskus kirjoittanut skriptejä, jotka vetää Windows tapahtumalokit tietyn päivämäärän tai skriptejä, jotka arkisto aging tiedot perustuu päivämäärä, jolloin tiedosto luotiin. Nämä ovat vain pari esimerkkiä siitä, miten päivämäärä voidaan viitata PowerShell script., Tässä artikkelissa, haluan näyttää muutamia temppuja työskennellä päivämäärät PowerShell.
noudetaan päivämäärä
on helppo tehdä PowerShell-näytöstä nykyinen päivämäärä. Voit tehdä niin, vain anna Get-Date cmdlet. Jos haluat näyttää päivämäärän tietyllä tavalla, PowerShell tarjoaa useita eri vaihtoehtoja. Yksinkertaisin tapa on käyttää näyttövihjettä. DisplayHint-parametri voidaan asettaa päivämäärälle, ajalle tai DateTime. Alla oleva kuva näyttää, miten Basic Get-Date cmdlet toimii, ja muutamia esimerkkejä DisplayHint-parametrin käytöstä.,
Jos tarvitset hieman enemmän kontrollia ulostuloon, voit käyttää Formaattiparametria tai UFormat-parametria. Formaattiparametria käytetään useimmiten silloin, kun Päivämäärä täytyy laittaa tiettyyn muotoon vertailun tekemistä varten. Emme käytä tässä artikkelissa formaatti-parametria, mutta on silti hyvä olla tietoinen sen olemassaolosta.
UFormat-parametria käytetään enemmän näyttötarkoituksiin. Sen avulla voit järjestää eri elementtejä, jotka muodostavat päivämäärän ja ajan tavalla valitsemasi., Sinun tarvitsee vain liittää erilaisia muotoilumerkkejä UFormat-parametriin. Parametrit, jotka voit käyttää ovat:
%M — Kuukausi (numero)
%D — Päivämäärä
%Y — Vuosi
%A — viikonpäivä
%Z — aikavyöhyke, ilmaistuna poikkeama UTC-tai Zulu aikaa. Esimerkiksi Yhdysvalloissa -5 on Itäistä aikaa.
alla on esimerkki siitä, miten UFormat-parametri toimii.
yllä olevassa kuvassa on kaksi asiaa, joihin kannattaa kiinnittää huomiota. Ensinnäkin, huomaat, että kaikki seuraavat UFormat parametri on lainausmerkeissä., Tämä johtuu siitä, että en vain Määrittele muotoilumerkkejä, voin myös käyttää tekstiä. Kuvassa käytin tekstin ja muotoilumerkkien sekoitusta.
toinen asia huomata on, että vaikka asun itärannikolla yhdysvalloissa, joka on tavallisesti aikavyöhyke offset -5, lähtö yllä olevassa kuvassa näkyy offset-kuin -4. Tämä johtuu siitä, että on kesäaikaa. Mutta eikö olisi mukava pystyä vahvistamaan se? Voimme itse asiassa. Näin se tehdään:
$a = Get-Date
$A.,IsDaylightSavingTime()
Kuten näette kuvan alla, PowerShell näyttää arvon Tosi, mikä osoittaa, että se on todellakin kesäaika.
entä vuoden päivä?
Powershellilla voi myös kertoa, mikä on vuoden päivä. Tässä on, miten se toimii:
$A=Get-Date
$A. DayOfYear
Jos todella haluat tehdä asiat mielenkiintoisia, vaikka, voit määrittää päivämäärä selvittää, mitä päivä vuonna päivä on. Määrittämäsi päivämäärä voi olla ohi tai tulevaisuudessa. Tässä esimerkki:
Get-Date-vuosi 2018-Kuukausi 8-Daye 22).,DayOfYear
alla olevasta kuvasta näet pari esimerkkiä.
päivämäärä, Jolloin vertailu
Kuten sanoin aiemmin, se on mahdollista käyttää PowerShell tehdä päivämäärä vertailuja. Vaikka voit käyttää -Format-parametri laittaa päivämäärä tiettyyn muotoon ennen vertaamalla sitä johonkin toiseen arvoon, näin ei ole aina tarpeen. Esimerkiksi tiedostojen kirjoituspäivien vertailu ei edellytä minkään erityisen muotoilun käyttöä.,
oletetaan hetkeksi, että haluaisit vertailla viimeksi kirjoitettu tietyn tiedoston päivämäärä ja aika valitsemaltasi nähdä, jos tiedosto on kirjoitettu enemmän viime aikoina kuin määritetty päivämäärä.
tällaisessa tilanteessa pitää ensin kartoittaa tavoitepäivämäärä muuttujaan. Esittelyn vuoksi aion kartoittaa tammikuun 2, 2017 (joka on satunnainen päivämäärä), muuttujan a$. Sitten kartoitan tietyn tiedoston muuttujaan, jota kutsun X$: ksi. Silloin voidaan tehdä vertailuja näiden kahden välillä., Joten tässä ovat komennot, jotka aion käyttää:
$A = (Get-Päivämäärä,- Vuosi 2017 Kuukauden 01-Päivä 02)
$A
$X = Get-ChildItem-Lueminut-tiedosto.txt
$X. LastWriteTime
$X. LastWriteTime -GT $A
ensimmäinen rivi koodia kartat $muuttuja 2. tammikuuta 2017. Seuraava rivi yksinkertaisesti varmistaa, että muuttuja sisältää halutun päivämäärän. Koodin kolmas rivi kartoittaa $X-muuttujan ReadMe-nimiseen tiedostoon.txt. Neljäs rivi näyttää tiedoston viimeisen kirjoitusajan. Koodin loppusuoralla tehdään vertailu näiden kahden päivämäärän välillä., Se näyttää totta on tiedosto on kirjoitettu viime aikoina kuin 2. tammikuuta 2017. Muuten se osoittaa vääryyden arvon. Alla oleva näytönkaappaus näyttää tämän toiminnassa. Huomaat myös, että olen lisännyt toisen rivin tarkistaa, onko tiedoston viimeinen kirjoitusaika vanhempi kuin (- LT) tammikuu 2, 2017. Kahden erillisen vertailun avulla on mahdollista nähdä, että vertailu todella tekee sen, mitä sen kuuluu tehdä.,
Päivämäärät PowerShell: Enemmän oppia
PowerShell todella avulla voit tehdä paljon enemmän huomioon päivämäärän muotoilua ja vertailut kuin mitä olen puhunut tässä artikkelissa. Jos haluat lisätietoja päivämäärien käyttämisestä Powershellissa, hyvä paikka aloittaa on Microsoftin asiakirjat Get-Date cmdletille.