Batch: Részstringek kezelése Windows batch fileokban

Rendszer / Windows batch (5251 katt)

Egy windowsos (XP vagy Windows 7) batch file készítése során azt szerettem volna elérni, hogy egy mentésre szolgáló file nevében szerepeljen a napi dátum is.

Az első próbálkozásom a következő volt:

set FILENAME=mentes_%date%.zip
echo %FILENAME%


Ennek a scriptnek az eredménye a mentes_2010.12.06..zip filenév lett, ami szerintem nem éppen elegáns. A filenévből ezért szerettem volna kihagyni a pont karaktereket. Ekkor elkezdtem keresgélni az Interneten, és rátaláltam egy olyan lehetőségre, amelynek segítségével az amúgy nem túl felhasználóbarát nyelvben meg lehet oldani a részstringek (substring) kezelését. A megoldás a következő script volt:

set FILENAME=mentes_%date:~0,4%%date:~5,2%%date:~8,2%.zip
echo %FILENAME%


A file neve így mentes_20101206.zip lett, ami pont az, amit eredetileg el szerettem volna érni.

Hogyan is működik ez a lehetőség? Nézzük meg néhány példán keresztül!

set SZOVEG=proba
echo %SZOVEG:~3%


Ez a parancs a SZOVEG változó tartalmának a harmadik karakterétől kezdve a végéig tartó részstringet adja meg, ebben az esetben az eredmény a ba szöveg. Vigyázat, a stringet nullától kell indexelni!

echo %SZOVEG:~1,2%

Ez a parancs a SZOVEG változó tartalmának az első karakterétől kezdve 2 karakter hosszú részstringet adja meg, ebben az esetben az eredmény a ro szöveg.

A string végéről is elindulhatunk, mégpedig negatív index megadásával:

echo %SZOVEG:~-3%
echo %SZOVEG:~-3,2%


Ezek a parancsok az oba, illetve az ob szöveget adják vissza.

Előző oldal Kapitány
Vélemények a műről (eddig 2 db)