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ć Windows 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(.+)',„Karta kredytowa o wartości 1 USD, 2 USD”)}
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 jest stosowany na smyczki w 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
