Kako serije preimenovanje del datoteke v Windows PowerShell uporabo regularnim izrazom?

V tem primeru, imamo 6 datoteke spodaj z datumom in ime datoteke spodaj:

Način LastWriteTime Dolžina Ime
----                -------------         ------ ----
-----       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

tukaj, ime datoteke vsebuje serijsko # na začetku, nato =, sledi "Izjava banke’ sledi do konca ravnotežja izjava.

Te datoteke so v resnici kreditne Izjave Card in besedo "banke’ potrebe, ki se nadomesti z besedama "kreditne kartice". Vse ostalo ime datoteke mora ostati enaka.

Da bi to dosegli, bomo s pomočjo Windows PowerShell z regex.

Za seznam vseh bančne izpiske za, bomo uporabili ls ukaz, Nato cev izhod

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

Ukaz preimenovati se uporablja po cevi za preimenovanje datoteke. $_ je objekt, ki ima izhod pred cevi, in smo z uporabo imena last $_ predmet. -replace Uporablja se na strune v PowerShell, ki nadomešča niz z novim nizom. -replace je funkcija, ki traja 2 parametri. 1. parameter je stara niz, ki želimo zamenjati in 2. parameter je nov niz.

Zajemanje skupine v regex nam omogoča, da dele niz. v regex, kaj dal v oklepaju je zajet uporabiti pozneje. npr.. (.+)Bank(.+) zajame vse pred in po znake "banke". Lahko uporabite te posnete dele, z uporabo $ in število. 1. oklepaj ujame v $1 in 2. oklepaj ujame v $2 etc…

V 1. parameter, smo opredeliti stari niz, ki ga želimo zamenjati, in hkrati ujamemo dele niza, ki jih želite obdržati (zajem). V 2. parameter, nov niz uporablja posnete dele, ki jih želite obdržati, kot tudi sam nov niz npr. '$1Credit Card$2'.

rezultat:

Način LastWrite Čas Dolž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

Pustite Odgovori