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) |