Weboldal keresés

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.

Kapcsolódó cikkek