web-dev-qa-db-fra.com

Comment extraire une extension de paramètre de fichier d'entrée à l'aide d'un script batch Windows

Étant donné ce script batch - comment puis-je isoler le nom de fichier et l'extension, comme dans la sortie donnée:

@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

Quelle est la syntaxe correcte pour <filename> and <extension> dans ce code?

8
Justicle

Comment isoler le nom de fichier et l'extension de %1?

Utilisez le fichier de commandes suivant (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  

Remarques:

  • %~n1 - Développez %1 en un nom de fichier sans extension de fichier.

  • %~x1 - Développez %1 dans une extension de fichier uniquement.

  • < et > sont des caractères spéciaux ( redirection ) et doivent être échappés utilisant ^.

Exemple d'utilisation:

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

Lectures complémentaires

11
DavidPostill