fichier batch pour la boucle avec des espaces dans le nom dir
Comment puis-je modifier ceci:
for /f %%a IN ('dir /b /s buildrelease*.dll') do echo "%%a"
Pour fonctionner lorsque le chemin contient des espaces?
Par exemple, si cela est exécuté à partir de
c:my folder with spaces
Il fera écho:
c:my
Merci
3 réponses
, Vous devez utiliser:
for /f "delims=" %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
Cela remplace les délimiteurs par défaut qui sont TAB et SPACE
J'ai contourné cela en ajoutant "type" et en mettant des guillemets doubles entourant le chemin dans la clause IN
FOR /F %%A IN ('type "c:\A Path With Spaces\A File.txt"') DO (
ECHO %%A
)
Cet article m'a donné l'idée d'utiliser le "type" dans la clause in.
Si vous ne voulez pas traiter les "guillemets", vous pouvez utiliser le commutateur" s " dans % ~ dpnx []... cela produira les noms de fichiers courts faciles à utiliser.
Depuis la ligne de commande...
for /f "delims=" %f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %~sdpnxf
À l'intérieur d'un .CMD/.Fichier BAT vous devez "échapper" le [%] par exemple, double-up [% % ]
for /f "delims=" %%f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %%~sdpnxf