Как разбить имя файла по точкам и получить 2 последние части

Итак, проблема в том, что я получу имя файла, например:

"a.b.c.d.e.f.g"

и мне нужно получить 2 последние порции. В таком случае,

"f.g"

и я не знаю, сколько точек будет в строке.

Спасибо за вашу помощь!


person Franko    schedule 08.08.2013    source источник


Ответы (2)


попробуй это:

@echo off &SETLOCAL
SET "fname=a.b.c.d.e.f.g"
:loop
SET /a t+=1
SET "d="
FOR /f "tokens=%t% delims=." %%a IN ("%fname%") DO SET "d=%%a"
SET "f=%g%"&SET "g=%e%"&SET "e=%d%"
IF DEFINED d GOTO :loop
ECHO %f%.%g%

€: работает для всех разделителей, а не только ..

person Endoro    schedule 08.08.2013

Вы можете использовать модификатор параметра x в %~xI`, чтобы получить доступ только к расширению, а затем использовать его дважды.

@echo off
set "fname=a.b.c.d.e.f.g"
for /F "delims=" %%A in ("%fname%") DO (
   set "ext2=%%~xA"
   for /F "delims=" %%A in ("%%~nA") DO set "ext1=%%~xA"
)
echo %ext1%%ext2%  
person jeb    schedule 08.08.2013