Kako serije preimenovati dio imena datoteke u Windows PowerShell koristeći Regex?

U ovom primjeru, imamo 6 datoteke ispod sa datumom i filename ispod:

Režim LastWriteTime Dužina Ime
----                -------------         ------ ----
-a ----       10/06/2018     12:40              0 1 = 9.8.16 Banka Izjava 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Banka Izjava 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Banka Izjava 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Banka Izjava 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Banka Izjava 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Banka Izjava 123.45.pdf

ovdje, naziv datoteke sadrži serijski # na početku, zatim =, zatim 'Bank Statement’ a zatim do kraja ravnoteže izjave.

Ove datoteke su zapravo kreditne kartice Izjave i riječ "Banka’ treba zamijeniti riječima 'kreditne kartice'. Sve ostalo ime datoteke treba da ostane ista.

Da bi se to postiglo, we will be using Windows PowerShell with Regex.

Za ispis sve izjave banke, mi koristimo ls naredba, onda cijev izlaz

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

Preimenuj naredba se koristi nakon cijevi za preimenovanje datoteka. $_ je objekt koji drži izlaz pred cijev, i mi koristimo naziv imovine $_ objekt. -replace is used on strings in PowerShell, koji zamjenjuje niz sa novim niz. -replace je funkcija koja uzima 2 parametri. 1. parametar je stara niz koji želimo zamijeniti i 2. parametar je novi niz.

Snimanje grupe u Regex nam omogućava zadržati dijelove niza. u Regex, ništa stavio u zagradi je zarobljen kasnije koristiti. npr.. (.+)Bank(.+) snima sve prije i poslije likova banke '. Možemo koristiti ove snimljene dijelove, pomoću $ i broj. 1. zagradi snima u $1 i 2. zagrade snima u $2 itd…

U 1. parametar, ćemo navesti stare niz koji želimo zamijeniti, a istovremeno smo uhvatiti dijelove niz koji želimo zadržati (hvatanje). U 2. parametar, novi niz koristi ulovljenog dijelove koje želimo zadržati, kao i sama novi string npr. '$1Credit Card$2'.

rezultat:

Mode LastWrite Time Dužina Ime
----       ---------      ----            ------   ----
-a ----     10/06/2018     12:40              0 1 = 9.8.16 Credit Card Izjava 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Credit Card Izjava 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Credit Card Izjava 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Credit Card Izjava 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Credit Card Izjava 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Credit Card Izjava 123.45.pdf

Komentariši