Как да партида преименувате част от името на файла в Windows PowerShell с помощта на регулярни изрази?

В този пример, ние имаме 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

Тук, името на файла съдържа сериен # в началото, последвано от =, последвано от "банково извлечение’ последвано от края на изявление баланс.

Тези файлове са в действителност отчети на кредитна карта и думата "банка’ трябва да се замени с думите "Кредитна карта". Всички останалата част от името на файла трябва да остане същата.

За да се постигне тази, ние ще се използва Windows PowerShell с регулярни изрази.

За да се изброят всички банкови отчети на, Ние използваме най- ls команда, След това тръбата на изхода

LS | Рен -newname {$_.name -replace("(.+)банка(.+)",'$ 1Credit Card $ 2')}

Командата преименуване се използва след тръбата за преименуване на файловете. $_ е обект, който има на изхода преди тръбата, и ние сме с помощта на името на имуществото на $_ обект. -replace се използва на низове в PowerShell, който заменя низ с нов низ. -replace е функция, която се 2 параметри. В първия параметър е старият низ, който ние искаме да се замени и втори параметър е новият низ.

Заснемане на групи в Регулярен позволява ни държат части на низ. В Регулярен, нищо поставени в скоби е заловен да използва по-късно. напр.. (.+)Bank(.+) улавя всичко преди и след знаците 'банка ". Ние можем да използваме тези заснети части, като се използва $ както и редица. В първия скобите улавя в $1 и 2-ри скобите улавя в $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

Вашият коментар