PowerShell: Hogyan lehet eltávolítani az utolsó N karaktert a fájlnevekből
Gyakran előfordulhat, hogy a PowerShell segítségével eltávolíthatja az utolsó N karaktert a fájlnevekből egy adott könyvtárban.
Ehhez a következő szintaxist használhatja:
gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}
Ez a konkrét példa eltávolítja az utolsó 5 karaktert az aktuális könyvtár minden fájlnevéből.
Íme, mit csinálnak a különböző parancsok:
- gci: A Get-ChildItem álneve, ez lekéri az aktuális könyvtárban található összes fájlt.
- ren: Az Elem átnevezése álneve, ez minden fájlnak új nevet ad meg.
- $_.Name: Lekéri az aktuális fájlnevet.
- alkarakterlánc: Megadja, hogy az új fájlnév egyenlő legyen az aktuális fájlnévvel, a 0 indexpozíciótól (az első karakter) az aktuális fájlnév teljes hosszáig, mínusz 5re.
- $_.Extension: Megadja, hogy az eredeti fájlkiterjesztést vissza kell-e adni a fájlnévhez.
A következő példa bemutatja ennek a szintaxisnak a gyakorlati használatát.
Példa: Az utolsó N karakter eltávolítása a fájlnevekből a PowerShellben
Először is használhatjuk a gci parancsot (a Get-ChildItem parancsmag álneve) az aktuális könyvtárunk összes fájlnevének megtekintéséhez:
Láthatjuk, hogy a jelenlegi könyvtárunkban négy fájl található, amelyek mindegyike a _data elnevezési konvencióra végződik.
Tegyük fel, hogy el szeretnénk távolítani az utolsó 5 karaktert minden fájlnévből, ami hatékonyan eltávolítja a _data elemet az egyes fájlnevek végéről.
Ehhez a következő szintaxist használhatjuk:
gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}A következő képernyőkép azt mutatja be, hogyan kell ezt a szintaxist a gyakorlatban használni:
Figyelje meg, hogy amikor ismét a gci parancsot használjuk az aktuális könyvtár összes fájljának megtekintéséhez, láthatjuk, hogy az utolsó 5 karaktert eltávolítottuk minden fájlnévből.
Megjegyzés: Nyugodtan cserélje ki az 5 karaktert a kódban, hogy helyette a fájlnevek végétől eltérő számú karaktert cseréljen le.

