Як пакетнае перайменаванне часткі імя файла ў Windows PowerShell з дапамогай Regex?

У гэтым прыкладзе, мы маем 6 файлы ніжэй з указаннем даты і імя файла ніжэй:

Рэжым LastWriteTime Даўжыня Імя
----                -------------         ------ ----
-----       10/06/2018     12:40              0 1 = 9.8.16 Выпіска з банка 298.67.pdf
-a ----       10/06/2018     12:40              0 2 = 9.9.16 Выпіска з банка 134.74.pdf
-a ----       10/06/2018     12:41              0 3 = 9.10.16 Выпіска з банка 123.43.pdf
-a ----       10/06/2018     12:41              0 4 = 9.11.16 Выпіска з банка 134.54.pdf
-a ----       10/06/2018     12:41              0 5 = 9.12.16 Выпіска з банка 157.98.pdf
-a ----       10/06/2018     12:41              0 6 = 9.1.17 Выпіска з банка 123.45.pdf

тут, імя файла ўтрымлівае серыйны # ў пачатку, з наступным =, затым «Выпіска з банкаўскага рахунку’ а затым у канцы балансу справаздачнасці.

Гэтыя файлы знаходзяцца ў справаздачнасці Card факт крэдытных і слова «банк’ неабходна замяніць словамі «Крэдытная карта». Усё астатняе імя файла павінны заставацца такімі ж.

Для дасягнення гэтай мэты, we will be using Windows PowerShell with Regex.

Для таго, каб пералічыць усе банкаўскія выпіскі, мы выкарыстоўваем ls каманда, Затым трубы на выхадзе

Ls | жэнь -newname {$_.name -replace('(.+)банк(.+)','$ 1Credit Card $ 2')}

Каманда перайменавання выкарыстоўваецца пасля таго, як трубы для перайменавання файлаў. $_ гэта аб'ект, які ўтрымлівае выхад да трубы, і мы выкарыстоўваем імя ўласцівасці з $_ аб'ект. -replace is used on strings in PowerShell, якая замяняе радок з новай радком. -replace гэта функцыя, якая прымае 2 параметры. Першы параметрам з'яўляецца старой радком, якую мы хочам замяніць і другі параметрам з'яўляецца новай радком.

Захоп групы ў Regex дазваляе нам трымаць часткі радка. У Regex, пакласці што-небудзь у дужках захопліваецца выкарыстоўваць пазней. напрыклад. (.+)Bank(.+) захоплівае што-небудзь да і пасля таго, як персанажаў банка ". Мы можам выкарыстоўваць гэтыя захопленыя часткі, з дапамогай $ і шэраг. Першая дужка захопліваюцца $1 і другая дужка захопліваюцца $2 і г.д.…

У 1-ым параметры, мы паказваем старую радок, якую мы хочам замяніць, і ў той жа час мы фіксуем часткі радка, якія мы хочам захаваць (захоп). У 2-й параметр, новая радок выкарыстоўвае захопленыя часткі, якія мы хочам захаваць, а таксама сама новая радок, напрыклад,. '$1Credit Card$2'.

вынік:

Рэжым LastWrite Час Даўжыня Імя
----       ---------      ----            ------   ----
-----     10/06/2018     12:40              0 1 = 9.8.16 Крэдытная картка Заява 298.67.pdf
-a ----     10/06/2018     12:40              0 2 = 9.9.16 Крэдытная картка Заява 134.74.pdf
-a ----     10/06/2018     12:41              0 3 = 9.10.16 Крэдытная картка Заява 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Крэдытная картка Заява 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Крэдытная картка Заява 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Крэдытная картка Заява 123.45.pdf

Пакінуць каментар