J'ai la boucle suivante dans un fichier batch:
for /R c:\test\src %%i IN (*.*) DO (
MOVE %%i C:\test\destination
ECHO %%i
exit
)
Le résultat de ECHO génère le chemin d'accès complet au fichier. Ex: C:\Nom de dossier\Nom de fichier Je n'ai besoin que d'ECHO pour le Nom de fichier . Existe-t-il une commande spécifique qui me donnerait le nom de fichier? Merci !
Lorsque les extensions de commande sont activées (Windows XP et plus récent, en gros), vous pouvez utiliser la syntaxe% ~ nF (où F est la variable et ~ n est la demande de son nom) pour obtenir uniquement le nom du fichier.
FOR /R C:\Directory %F in (*.*) do echo %~nF
devrait faire écho que les noms de fichiers.
ou Juste% ~ F vous donnera le chemin complet et le nom complet du fichier.
Par exemple, si vous souhaitez enregistrer tous les fichiers * .ax dans le répertoire en cours, procédez comme suit:.
FOR /R C:. %F in (*.ax) do regsvr32 "%~F"
Cela fonctionne assez bien dans Win7 (64bit) :-)
Je suis un peu en retard mais j'ai utilisé ceci:
dir /B *.* > dir_file.txt
vous pouvez ensuite créer une simple boucle FOR pour extraire le nom de fichier et l’utiliser. par exemple:
for /f "tokens=* delims= " %%a in (dir_file.txt) do (
gawk -f awk_script_file.awk %%a
)
ou les stocker dans Vars (! N1 !,! N2! ..! Nn!) pour une utilisation ultérieure. par exemple:
set /a N=0
for /f "tokens=* delims= " %%a in (dir_file.txt) do (
set /a N+=1
set v[!N!]=%%a
)
Si vous souhaitez conserver le nom de fichier (uniquement) et l'extension, vous pouvez utiliser %~nxF