목록의 파일이 아닌 항목에 대해 배치 파일이 반복되지 않음

목록의 파일이 아닌 항목에 대해 배치 파일이 반복되지 않음

Windows 10을 사용하는 관리자 권한 명령 내에서 다음 배치 파일을 실행합니다.

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

나는 그 여섯 가지 항목이 각각 나열되기를 기대합니다. 대신 첫 번째 개체(3D 개체)만 나열한 다음 중지됩니다. "토큰"을 사용해도 별 차이가 없는 것 같고, "delims"도 생각한 대로 작동하지 않는 것 같습니다.

질문:FOR가 목록에서 쉼표로 구분된 항목을 처리할 수 있다고 생각하는 것이 잘못된 것인가요 ?

답변1

에 표시된 대로 파일이 아닌 목록에 대해 예상한 대로 작동하지 않는 것 같습니다 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]
    

나는 이것이 , 또는 FOR /F핸들 이 실제 파일을 의미한다고 생각합니다. 이 경우에는 파일이 아닌 목록을 그 안에 넣는 것을 의미하며, 이는 구문 분석하거나 반복할 수 없는 문자열로 해석 됩니다 .commandstringfile-setfile-setdelimstokens


문제를 해결하려면 파일이 아닌 목록을 일반 목록에 넣으세요.~을 위한tokensor 를 사용하지 않고 반복하고 delims, 공백이 포함된 값이 큰따옴표로 묶여 있는지 확인하세요.

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

모든 값을 큰따옴표로 묶고 ~변수 자리 표시자에 [ ] 물결표를 사용하여 출력 값에서 큰따옴표를 구문 분석하여 큰따옴표 없이 원하는 출력을 제공할 수 있습니다.

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

산출

3D Objects
Documents
Downloads
Music
Pictures
Videos

지원 리소스

관련 정보