Kako hrpa preimenovati dio datoteke u Windows PowerShell pomoću Uobičajeni izraz?

U ovom primjeru, imamo 6 slika ispod s datumom i datoteke ispod:

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

Ovdje, naziv datoteke sadrži serijski # na početku, zatim =, nakon čega slijedi „Izjave banke’ nakon završetka gubitka ravnoteže.

Ove datoteke su zapravo kreditne kartice izjave, a riječ „banke’ treba zamijeniti riječima „Kreditna kartica”. Sve ostalo naziv datoteke trebaju ostati isti.

Da bi se to postiglo, mi ćemo biti koristeći Windows PowerShell s regex.

Za popis svih izvještaja banaka, koristimo ls naredba, Zatim cijev izlaz

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

Naredba preimenovati se koristi nakon cijevi za preimenovanje datoteka. $_ je objekt koji ima izlaz pred cijevi, i mi koristimo naziv vlasništvu $_ objekt. -replace koristi na žice u PowerShell, koji zamjenjuje niz s novim nizom. -replace je funkcija koja traje 2 parametri. 1. parametar je stara niz koji želimo zamijeniti, a drugi parametar je novi niz.

Snimanje grupe u regex omogućuje nam držati dijelove niza. u regex, sve staviti u zagradi je zarobljen koristiti kasnije. npr.. (.+)Bank(.+) snima sve prije i poslije likova banke '. Možemo koristiti ove snimljene dijelove, pomoću $ i broj. 1. zagrada snima u $1 a drugi zagrada snima u $2 itd…

U 1. parametar, smo odredili stari string koji želimo zamijeniti, a istovremeno smo snimiti dijelove nizu koje želimo zadržati (uhvatiti). U 2. parametar, novi niz koristi snimljene dijelove koje želimo zadržati, kao i novi niz sama npr. '$1Credit Card$2'.

Proizlaziti:

Način LastWrite Vrijeme Dužina Ime
----       ---------      ----            ------   ----
-----     10/06/2018     12:40              0 1 = 9.8.16 Kreditna kartica Izjava 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Kreditna kartica Izjava 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Kreditna kartica Izjava 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Kreditna kartica Izjava 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Kreditna kartica Izjava 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Kreditna kartica Izjava 123.45.pdf

Ostavi odgovor