2016-04-17 1 views
0

Скажите, что у вас есть имя файла, в котором есть более 2 точек, например .symbols.nupkg. Если у вас есть пакетный скрипт вроде этого:Как получить полное расширение файла из имен файлов с 2+ точками в CMD?

@echo off 
setlocal EnableDelayedExpansion 

echo %~x1 

и запустить его с файлом в вопросе, он даст вам только .nupkg часть. Есть ли способ получить полное расширение файла из такой строки?

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

+2

По определению, расширение является частью от последней точки до конца имя, поэтому расширение файла, который вы назвали, - '.nupkg'. Остальное является частью имени файла, а не расширения. –

+1

Согласно определению в Windows расширение файла является частью за * last * period '.'; в любом случае, чтобы получить все из первого '.', do' set 'FILE =% ~ nx1 "' (извлечь полное имя файла), затем 'set' FILE =.% FILE: *. =%" '(variable' FILE 'будет содержать результат) ... – aschipfl

ответ

1

В Windows расширение файла определено как часть от последнего периода.

Во всяком случае, если вы хотите, чтобы извлечь часть из первых периода, вы можете использовать следующий код:

set "FILE=%~nx1" 
set "FILE=.%FILE:*.=%" 
echo("%FILE%"