Ako dávkové premenovanie časť názvu súboru v prostredí Windows PowerShell pomocou Regex?

V tomto príklade, máme 6 Súbory s dátumom a názov nižšie:

Režim LastWriteTime Dĺžka Name
----                -------------         ------ ----
-----       10/06/2018     12:40              0 1 = 9.8.16 Vyhlásenie Bank 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Vyhlásenie Bank 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Vyhlásenie Bank 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Vyhlásenie Bank 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Vyhlásenie Bank 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Vyhlásenie Bank 123.45.pdf

Tu, názov súboru obsahuje sériové # na začiatku, nasleduje =, nasleduje, Vyhlásenie banky’ nasledoval do konca roka výkazoch.

Tieto súbory sú v závierke skutočnosť, kreditných kariet a slovo, banka’ musí byť nahradená slovami, Kreditná karta '. Celý zvyšok súboru by mala zostať rovnaká.

Na dosiahnutie tohto cieľa, we will be using Windows PowerShell with Regex.

Vypísať všetky bankové výpisy, používame ls príkaz, potom rúrka výstup

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

Príkaz premenovanie je používaný po trubke premenovať súbory. $_ je objekt, ktorý obsahuje výstup pred rúrkou, a my sme s použitím vlastnosť názov $_ objekt. -replace is used on strings in PowerShell, ktorý nahradí reťazec novým reťazcom. -replace je funkcia, ktorá berie 2 parametre. 1. Parameter je starý reťazec, ktorý chceme nahradiť a druhý parameter je nový reťazec.

Zachytenie skupiny v Regex nám umožňuje udržať častí reťazca. v regex, niečo dať v zátvorke je zachytený pre neskoršie použitie. napr. (.+)Bank(.+) zachytí niečo pred a po postáv banka ". Môžeme použiť tieto zachytené diely, používaním $ a rad. 1. zátvorky zachytí do $1 a druhá zátvorka zachytí do $2 atď…

V 1. parametra, určíme starý reťazec, ktorý chceme nahradiť, a zároveň sme sa zachytiť tie časti reťazca, ktoré chceme zachovať (zajatí). V 2. parametra, Nový reťazec používa zachytené časti, ktoré chceme zachovať, rovnako ako samotný nový reťazec napr. '$1Credit Card$2'.

výsledok:

Režim LastWrite Time Dĺžka Name
----       ---------      ----            ------   ----
-----     10/06/2018     12:40              0 1 = 9.8.16 Výpise z platobnej karty 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Výpise z platobnej karty 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Kreditná karta Vyhlásenie 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Kreditná karta Vyhlásenie 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Kreditná karta Vyhlásenie 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Výpise z platobnej karty 123.45.pdf

Nechaj odpoveď