Miten erä nimetä osa tiedostonimen Windows PowerShellissä käyttäen Regex?

Tässä esimerkissä, meillä on 6 alla olevat tiedostot päivämäärän ja tiedostonimen alla:

Mode LastWriteTime Pituus Name
----                -------------         ------ ----
-----       10/06/2018     12:40              0 1 = 9.8.16 Tiliote 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Tiliote 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Tiliote 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Tiliote 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Tiliote 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Tiliote 123.45.pdf

Tässä, tiedostonimi sisältää sarja- # alussa, minkä jälkeen =, seuraa ’Tiliote’ seuraa loppuun tilin saldo.

Nämä tiedostot ovat itse asiassa luottokorttilaskut ja sana ’pankki’ täytyy ilmaisulla Luottokortti. Kaikki loput tiedostonimi tulisi pysyä samana.

Jotta voitaisiin saavuttaa tämän, Käytämme Windows PowerShell kanssa Regex.

Luetella kaikki tiliotteiden, käytämme ls komento, Sitten putki lähtö

ls | ren -newname {$_.name -replace('(.+)Pankki(.+)','$ 1Credit Card $ 2')}

Uudelleennimeämismoduuli komentoa käytetään sen jälkeen, kun putki nimetä tiedostoja. $_ on esine, joka pitää lähdön ennen putken, ja käytämme nimeä omaisuutta $_ esine. -replace käytetään jousille PowerShell, joka korvaa merkkijono uudella merkkijonolla. -replace on funktio, joka ottaa 2 parametrit. 1. parametri on vanha merkkijono, haluamme korvata ja 2nd parametri on uusi merkkijono.

Syömällä ryhmät Regex voimme pitää osaa merkkijono. Säännölliset lausekkeet, mitään laittaa suluissa kaapataan käyttää myöhemmin. esim.. (.+)Bank(.+) kaappaa mitään ennen ja jälkeen merkkien ’pankki’. Voimme käyttää näitä jää osia, käyttämällä $ ja useat. 1. suluissa sieppaukset tulee $1 ja 2. sulkujen sieppaukset tulee $2 jne…

1st parametri, me määrittää vanha merkkijono, haluamme korvata, ja samalla me kaapata osat merkkijonon haluamme säilyttää (kaapata). 2nd parametri, Uuden merkkijono käyttää kiinni osiin, että haluamme säilyttää, sekä uuden merkkijonon itse esim. '$1Credit Card$2'.

Tulos:

Mode LastWrite Aika Pituus Name
----       ---------      ----            ------   ----
-----     10/06/2018     12:40              0 1 = 9.8.16 Luottokortin tiliote 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Luottokortin tiliote 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Luottokortin tiliote 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Luottokortin tiliote 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Luottokortin tiliote 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Luottokortin tiliote 123.45.pdf

Jätä vastaus