Jak uzyskać tylko rozszerzenie pliku podczas pisania polecenia powłoki dla menu kontekstowego

0

Na przykład jeśli wpisz cmd.exe echo %1 pokazuje nazwę pliku i rozszerzenie wybranego pliku. Ale chcę tylko uzyskać rozszerzenie wybranego pliku.

Czy ktoś wie jak?

LRR
źródło

Odpowiedzi:

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 

Źródło

nixda
źródło
Mam to!!! dzięki za obie odpowiedzi.
LRR
1
Może inni chcą wiedzieć w jaki sposób masz to?
nixda
1

Możesz to łatwo zrobić w PowerShell, używając atrybutu Extension.

Jeden przykład (chociaż możliwe jest wiele innych metod, aby to osiągnąć:

Get-ChildItem | select Extension

W pliku cmd.exe:

for %i in (*.*) do echo "%~xi"
Austin T French
źródło
dodano polecenie DIR
Austin T French
Przykro mi, że wpisuję niewłaściwe polecenie to „cmd.exe echo% 1” i wyjaśnienie, czego chcę, to uzyskanie tylko rozszerzenia dowolnego wybranego pliku, a nie określonego rozszerzenia dla wszystkich rozszerzeń. „na przykład, jeśli typ cmd.exe echo% 1, pokazuje nazwę pliku i rozszerzenie wybranego pliku” Chcę utworzyć opcję menu kontekstowego z podobną opcją, ale muszę wydrukować tylko rozszerzenie
LRR
W porządku, zaktualizowany z myślą o tym.
Austin T French