FOR / F com espaços não funciona

6
FOR /f %%F IN ('dir /b /s "%DeploymentDirectory%\Run.*.dll"') DO ECHO %%F

O problema é que os caminhos retornados por dir possuem espaços e apenas uma parte do caminho é exibida. Como corrijo para que exiba o caminho completo?

    
por Andres 24.04.2011 / 00:55

3 respostas

4

Você precisa definir os delimitadores usados para dividir a linha em tokens para que os espaços não sejam incluídos. Algo como "delims =?" Logo após o / f. Basta usar um caractere que é ilegal em nomes de arquivos (e * são bons candidatos)

FOR /F "delims=?" %%F in ('dir /b /s "%Dir%\Run.*.dll"') DO ECHO "%%F"

Lembre-se de colocar aspas duplas em torno do %% F nos seus comandos reais, pois a variável expandida também terá espaços.

    
por 24.04.2011 / 00:58
3

Por que você precisa fazer a iteração da saída de dir , aqui? Simplesmente usando

for /r %%F in ("%DeploymentDirectory%\Run.*.dll")

não é suficiente?

    
por 25.04.2011 / 10:48
1

defina os delims como início e fim de linha

for /f "delims=" %%F 

etc

    
por 24.04.2011 / 16:31

Tags