Como faço para obter apenas a extensão de um arquivo ao escrever um comando shell para um menu de contexto

0

Por exemplo, se o tipo cmd.exe echo %1 mostrar o nome do arquivo e a extensão do arquivo selecionado. Mas o que eu quero fazer é pegar a extensão do arquivo selecionado sozinho.

Alguém sabe como?

    
por LRR 04.07.2013 / 19:25

2 respostas

0

cmd.exe echo %~x1

%*      return the remainder of the command line starting at the first command line   argument (in Windows NT 4, %* also includes all leading spaces)
%~dn    return the drive letter of %n (n can range from 0 to 9) if %n is a valid path or file name (no UNC)  
%~pn    return the directory of %n if %n is a valid path or file name (no UNC)  
%~nn    return the file name only of %n if %n is a valid file name  
%~xn    return the file extension only of %n if %n is a valid file name  
%~fn    return the fully qualified path of %n if %n is a valid file name or directory 

Fonte

    
por 04.07.2013 / 23:13
1

Você pode fazer isso facilmente no Powershell, usando o atributo Extension.

Um exemplo (embora muito mais métodos para realizar isso sejam possíveis:

Get-ChildItem | select Extension

E no cmd.exe:

for %i in (*.*) do echo "%~xi"
    
por 04.07.2013 / 19:37