Comment puis-je modifier cela:
for /f %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
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
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 autour du 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 "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 qui sont faciles à utiliser.
à partir de la ligne de commande ...
for /f "delims=" %f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %~sdpnxf
dans un fichier .CMD/.BAT, vous devez "échapper" le [%], par exemple, double-up [%%]
for /f "delims=" %%f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %%~sdpnxf