Como extrair a extensão do parâmetro de arquivo de entrada usando o script de lote do Windows

2

Dado este script em lote - como isolar nome de arquivo e extensão, como na saída fornecida:

@echo off
REM usage split.bat <filename>
set input_file="%1"
echo input file name is <filename> and extension is <extension>

c:\split.bat testfile.txt
input filename is testfile and extension is txt

Isto é - qual é a sintaxe correta para <filename> and <extension> neste código?

    
por Justicle 05.10.2016 / 23:42

1 resposta

5

Como faço para isolar nome de arquivo e extensão de %1 ?

Use o seguinte arquivo em lote (split.bat):

@echo off 
setlocal
REM usage split.bat <filename>
set _filename=%~n1
set _extension=%~x1
echo input file name is ^<%_filename%^> and extension is ^<%_extension%^>
endlocal  

Notas:

  • %~n1 - Expanda %1 para um nome de arquivo sem extensão de arquivo.

  • %~x1 - Expanda %1 somente para um arquivo eXtension.

  • < e > são caracteres especiais ( redirecionamento ) e devem ser escapou usando ^ .

Exemplo de uso:

> split testfile.txt
input file name is <testfile> and extension is <.txt>

Leitura Adicional

por 05.10.2016 / 23:56

Tags