Hoe om joernaal hernoem deel van die lêernaam in Windows PowerShell met behulp van Regex?

In hierdie voorbeeld, ons het 6 lêers hieronder met die datum en lêernaam onder:

Af LastWriteTime Lengte Naam
----                -------------         ------ ----
-'n ----       10/06/2018     12:40              0 1 = 9.8.16 Bankstaat 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Bankstaat 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Bankstaat 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Bankstaat 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Bankstaat 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Bankstaat 123.45.pdf

hier, die lêernaam bevat 'n reeks # Aan die begin, gevolg deur =, gevolg deur 'Bankstaat’ gevolg deur die einde van staatsaldo.

Hierdie lêers is in werklikheid Kredietkaart State en die woord 'Bank’ vervang moet word deur die woorde 'Kredietkaart'. Al die res van die lêernaam moet dieselfde bly.

Ten einde dit te bereik, we will be using Windows PowerShell with Regex.

Om al die bankstate, Ons gebruik die ls bevel, dan pyp die uitset

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

Die hernoem opdrag gebruik word na die pyp aan die lêers te hernoem. $_ is die voorwerp wat die uitset hou voor die pyp, en ons is met behulp van die eiendom naam van die $_ voorwerp. -replace is used on strings in PowerShell, wat in die plek 'n string met 'n nuwe string. -replace is 'n funksie wat neem 2 grense. Die 1ste parameter is die ou string wat ons wil vervang en die 2de parameter is die nuwe string.

Vaslegging groepe in Regex laat ons dele van die string te hou. in Regex, enigiets sit in hakies is vasgevang te later te gebruik. bv.. (.+)Bank(.+) vang iets voor en na die karakters se Bank ". Ons kan hierdie vasgevang dele gebruik, deur die gebruik van $ en 'n aantal. Die 1ste hakies vang in $1 en die 2de hakies vang in $2 ens…

In die 1ste parameter, ons spesifiseer die ou string wat ons wil vervang, en op dieselfde tyd wat ons vang die dele van die string wat ons wil behou (vang). In die 2de parameter, die nuwe string gebruik die gevange dele wat ons wil behou, sowel as die nuwe string self bv. '$1Credit Card$2'.

gevolg:

Af LastWrite Tyd Lengte Naam
----       ---------      ----            ------   ----
-'n ----     10/06/2018     12:40              0 1 = 9.8.16 Kredietkaartstaat 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Kredietkaartstaat 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Kredietkaartstaat 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Kredietkaartstaat 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Kredietkaartstaat 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Kredietkaartstaat 123.45.pdf

Lewer kommentaar