Arquivo em lote não faz loop para itens que não são de arquivo em uma lista

Arquivo em lote não faz loop para itens que não são de arquivo em uma lista

Dentro de um comando elevado usando o Windows 10, executo este arquivo em lote:

@echo off
cls
for /f "tokens=1-6 delims=," %%G in ("3D Objects,Documents,Downloads,Music,Pictures,Videos") do (
echo %%G
)

Espero que ele liste cada um desses seis itens. Em vez disso, ele lista apenas o primeiro (Objetos 3D) e depois para. Usar "Tokens" não parece fazer muita diferença, e "delims" não parece estar funcionando como eu esperava.

Pergunta:Estou enganado ao pensar que isso FORpode lidar com itens delimitados por vírgulas em uma lista?

Responder1

Não acho que esteja funcionando como você espera para uma lista que não seja de arquivos, porque conforme indicado em for /?. . .

  • FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
    FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
    FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
    

Acredito que isso significa os FOR /Fidentificadores command, string, ou file-setque presumo que file-setsignifiquem especificamente um arquivo real. Se for esse o caso, isso significa colocar a lista de não-arquivos lá, ela é interpretada como uma string que delimsnão tokenspode ser analisada ou iterada.


Para resolver coloque a lista de não-arquivos dentro de um regularparafaça um loop sem usar nenhum tokensou delimse garanta que os valores que contêm um espaço sejam colocados entre aspas duplas.

@echo off
cls
for %%G in ("3D Objects",Documents,Downloads,Music,Pictures,Videos) do (
echo %%~G
)

Você pode colocar aspas duplas em torno de todos os valores e usar o ~til [] no espaço reservado da variável para analisar as aspas duplas do valor de saída, fornecendo a saída desejada sem aspas duplas.

@echo off
cls
for %%G in ("3D Objects","Documents","Downloads","Music","Pictures","Videos") do (
echo %%~G
)

Saída

3D Objects
Documents
Downloads
Music
Pictures
Videos

Recursos de apoio

informação relacionada