Jak zmienić nazwę partii część nazwy pliku w systemie Windows PowerShell przy użyciu regex?

W tym przykładzie, mamy 6 Poniższe pliki z datą i nazwą pliku poniżej:

Tryb LastWriteTime długość nazwy
----                -------------         ------ ----
-za----       10/06/2018     12:40              0 1 = 9.8.16 Oświadczenie Banku 298.67.pdf
-za----       10/06/2018     12:40              0 2 = 9.9.16 Oświadczenie Banku 134.74.pdf
-za----       10/06/2018     12:41              0 3 = 9.10.16 Oświadczenie Banku 123.43.pdf
-za----       10/06/2018     12:41              0 4 = 9.11.16 Oświadczenie Banku 134.54.pdf
-za----       10/06/2018     12:41              0 5 = 9.12.16 Oświadczenie Banku 157.98.pdf
-za----       10/06/2018     12:41              0 6 = 9.1.17 Oświadczenie Banku 123.45.pdf

Tutaj, nazwa pliku zawiera seryjny # na początku, następnie =, następnie „wyciąg bankowy’ a następnie do końca salda rachunku.

Te pliki znajdują się wyciągi z kart kredytowych i fakt słowo „bank’ należy zastąpić wyrazami „karta kredytowa”. Cała reszta nazwy pliku powinna pozostać taka sama.

W tym celu, będziemy używać Okna PowerShell z Regex.

Aby wyświetlić wszystkie wyciągi bankowe, Używamy ls dowództwo, Następnie rura wyjściowa

ls | ren -newname {$_.name -Wymień('(.+)Bank(.+)','$ 1Credit Karta $ 2')}

Polecenie zmiany nazwy jest używana po rurze do zmiany nazw plików. $_ Jest to obiekt, który posiada wyjście przed rurą, a my za pomocą właściwości Nazwa $_ obiekt. -replace służy on w ciągi PowerShell, która zastępuje ciąg znaków z nowym ciągiem. -replace Jest to funkcja, która trwa 2 parametry. The 1st parametrem jest stary ciąg, który chcemy wymienić i 2. Parametr ten jest nowy łańcuch.

Przechwytywanie grupy w Regex pozwala nam zachować części łańcucha. w Regex, cokolwiek umieścić w nawiasie zostaje schwytany w użyciu później. np.. (.+)Bank(.+) rejestruje wszystko przed i po znakach „bank”. Możemy wykorzystać te uchwycone części, używając $ a liczba. The 1st nawias oddaje do $1 i 2. nawias oddaje do $2 itp…

W 1 parametru, możemy określić stary łańcuch, który chcemy zastąpić, a jednocześnie możemy uchwycić części łańcucha, które chcemy zachować (zdobyć). W 2. parametrze, nowy łańcuch wykorzystuje przechwycone części, które chcemy zachować, a także nowy ciąg np sama. '$1Credit Card$2'.

Wynik:

Tryb LastWrite Czas trwania Nazwa
----       ---------      ----            ------   ----
-za----     10/06/2018     12:40              0 1 = 9.8.16 Karta kredytowa komunikat 298.67.pdf
-za----     10/06/2018     12:40              0 2 = 9.9.16 Karta kredytowa komunikat 134.74.pdf
-za----     10/06/2018     12:41              0 3 = 9.10.16 Karta kredytowa komunikat 123.43.pdf -a ----     10/06/2018     12:41              0 4 = 9.11.16 Karta kredytowa komunikat 134.54.pdf -a ----     10/06/2018     12:41              0 5 = 9.12.16 Karta kredytowa komunikat 157.98.pdf -a ----     10/06/2018     12:41              0 6 = 9.1.17 Karta kredytowa komunikat 123.45.pdf

Dodaj komentarz