Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: FrankoОтветов: 2

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

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

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

"f.g"

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

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

windowssplitbatch-file

Ответы

Ответ 1 · рейтинг 2 · Endoro

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

@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%

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

Ответ 2 · рейтинг 1 · jeb

Вы можете использовать модификатор параметра 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%

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы