Jak dávkové přejmenování část názvu souboru v prostředí Windows PowerShell pomocí Regex?

V tomto příkladu, my máme 6 Soubory s datem a název níže:

Režim LastWriteTime Délka Name
----                -------------         ------ ----
-A----       10/06/2018     12:40              0 1 = 9.8.16 Prohlášení Bank 298.67.pdf
-A----       10/06/2018     12:40              0 2 = 9.9.16 Prohlášení Bank 134.74.pdf
-A----       10/06/2018     12:41              0 3 = 9.10.16 Prohlášení Bank 123.43.pdf
-A----       10/06/2018     12:41              0 4 = 9.11.16 Prohlášení Bank 134.54.pdf
-A----       10/06/2018     12:41              0 5 = 9.12.16 Prohlášení Bank 157.98.pdf
-A----       10/06/2018     12:41              0 6 = 9.1.17 Prohlášení Bank 123.45.pdf

Zde, název souboru obsahuje sériové # na začátku, následuje =, následuje ‚Prohlášení banky’ následoval do konce roku výkazech.

Tyto soubory jsou v závěrce skutečnost, kreditních karet a slovo ‚banka’ musí být nahrazena slovy ‚Kreditní karta‘. Celý zbytek souboru by měla zůstat stejná.

Za účelem dosažení tohoto cíle, budeme používat Windows PowerShell s Regex.

Vypsat všechny bankovní výpisy, používáme ls příkaz, pak trubka výstup

ls | ren -newname {$_.name VYMĚNIT('(.+)banka(.+)','$ 1Credit Card $ 2')}

Příkaz přejmenování je používán po trubce přejmenovat soubory. $_ je objekt, který obsahuje výstup před trubkou, a my jsme s použitím vlastnost název $_ objekt. -replace Používá se na smyčce v PowerShell, který nahradí řetězec novým řetězcem. -replace je funkce, která bere 2 parametry. 1. Parametr je starý řetězec, který chceme nahradit a druhý parametr je nový řetězec.

Zachycení skupiny v RegEx nám umožňuje udržet částí řetězce. v RegEx, něco dát v závorce je zachycen pro pozdější použití. např.. (.+)Bank(.+) zachytí něco před a po postav banka ". Můžeme použít tyto zachycené díly, používáním $ a řada. 1. závorky zachytí do $1 a druhá závorka zachytí do $2 atd…

V 1. parametru, určíme starý řetězec, který chceme nahradit, a zároveň jsme se zachytit ty části řetězce, které chceme zachovat (zajetí). Ve 2. parametru, Nový řetězec používá zachycené části, které chceme zachovat, stejně jako samotný nový řetězec např. '$1Credit Card$2'.

Výsledek:

Režim LastWrite Time Délka Name
----       ---------      ----            ------   ----
-A----     10/06/2018     12:40              0 1 = 9.8.16 Výpisu z platební karty 298.67.pdf
-A----     10/06/2018     12:40              0 2 = 9.9.16 Výpisu z platební karty 134.74.pdf
-A----     10/06/2018     12:41              0 3 = 9.10.16 Kreditní karta Prohlášení 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Kreditní karta Prohlášení 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Kreditní karta Prohlášení 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Výpisu z platební karty 123.45.pdf

Napsat komentář