Si për të grumbull riemërtoj pjesë të skedarit në Windows PowerShell përdorur regex?

Në këtë shembull, ne kemi 6 Fotografi më poshtë me datën dhe emrin e skedarit poshtë:

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

këtu, emri i skedarit përmban një serial # ne fillim, i ndjekur nga =, pasuar nga 'pasqyrës bankare’ ndjekur deri në fund të bilancit deklaratë.

Këto fotografi janë në fakt Credit Card Pasqyrat dhe fjala 'Bankës’ duhet të zëvendësohet me fjalët "Credit Card '. Të gjithë pjesa tjetër e skedarit duhet të mbetet e njëjtë.

Për të arritur këtë, we will be using Dritaret PowerShell with Regex.

Të listojnë të gjitha deklaratat e Bankës, ne përdorim ls komandë, atëherë tub prodhimi

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

Komanda Rename përdoret pas tub për të riemërtoni fotografi. $_ është objekt që mban dalje para tub, dhe ne jemi duke përdorur emrin pronën e të $_ Objekt. -replace is used on strings in PowerShell, e cila zëvendëson një varg me një varg të ri. -replace është një funksion që merr 2 parametrat. Parametri 1 është string vjetër që ne duam për të zëvendësuar dhe parametri 2 është string ri.

Kapjen e grupeve në regex na lejon të mbajtur pjesë të vargut. në regex, çdo gjë vënë në kllapa është kapur për t'u përdorur më vonë. p.sh.. (.+)Bank(.+) kap asgjë para dhe pas 'Banka' personazhet. Ne mund të përdorni këto pjesë kapur, duke përdorur $ dhe një numër i. Kllapa 1 kap në $1 dhe kllapa 2 kap në $2 etj…

Në parametri 1, ne të specifikojë varg të vjetër që ne duam për të zëvendësuar, dhe në të njëjtën kohë të kapur pjesët e vargut që ne duam për të mbajtur (capture). Në parametri 2, vargu i ri përdor pjesët e kapur që ne duam për të mbajtur, si dhe string ri vetë p.sh.. '$1Credit Card$2'.

rezultat:

Mode LastWrite Koha Length Emri
----       ---------      ----            ------   ----
-a ----     10/06/2018     12:40              0 1 = 9.8.16 Credit Card Deklarata 298.67.pdf
-A ----     10/06/2018     12:40              0 2 = 9.9.16 Credit Card Deklarata 134.74.pdf
-A ----     10/06/2018     12:41              0 3 = 9.10.16 Credit Card Deklarata 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Credit Card Deklarata 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Credit Card Deklarata 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Credit Card Deklarata 123.45.pdf

Lini një Përgjigju