Boucle à travers les noms de fichier dans un Script Batch
Je voudrais un script batch pour tous les documents de texte dans un dossier.
C'est ce que j'ai réussi jusqu'à présent:
@ECHO off
title Test
set dir1=C:\Users\Family\Desktop\Example
:Start
cls
echo 1. test loop
echo 2. Quit
set /p choice=I choose (1,2):
if %choice%==1 goto test
if %choice%==2 exit
:test
cls
echo running loop test
FOR %%n in (%dir1% *.txt) DO echo %dir1%\%%n
echo Done
pause
Ce que je voudrais en sortie est:
running loop test
C:\Users\Family\Desktop\Example\doc 1.txt
C:\Users\Family\Desktop\Example\doc 2.txt
Done
Mais j'Obtiens ceci:
running loop test
C:\Users\Family\Desktop\Example\C:\Users\Family\Desktop\Example
C:\Users\Family\Desktop\Example\doc 1.txt
C:\Users\Family\Desktop\Example\doc 2.txt
Done
OriginalL'auteur Krayons | 2011-01-11
Vous devez vous connecter pour publier un commentaire.
Le problème principal semble être l'espace entre (%dir1% *.txt)
Il pourrait être
Les guillemets sont pour éviter les problèmes avec des espaces ou d'autres caractères spéciaux dans le chemin d'accès.
EDIT:
Le
%%~dpnX
est pour l'extension du nom de fichier de%%X
d'd
=lecteur(C:)p
=chemin(\Users\Famille\Desktop\Exemple)n
=nom de fichier(test1) (sans l'extension)f
=nom de fichier C:\Users\Family\Desktop\Example\test1.txt).Les modificateurs éventuels sont expliquées ici POUR /?
%%~nX
juste de nom de fichier (test1), le nom de fichier avec l'extension%%~nxX
(test1.txt).Pour clarifier: noter que, dans son code
%%X
est l'ensemble du nom de fichier a été trouvé. Les autres pièces~dpn
sont des modificateurs de la%%X
. De sorte que l'utilisateur 2ème dit, l'utilisation de la~n
modificateur sur la variable de sortie juste le fichier en appelantecho %%~nX
OriginalL'auteur jeb