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, ćemo koristiti Windows PowerShell s regex.
Za popis svih izvještaja banaka, koristimo ls naredba, Zatim cijev izlaz
ls | ren -newname {$_.name -replace('(.+)Banka(.+)','$1Credit Card$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
