![목록의 파일이 아닌 항목에 대해 배치 파일이 반복되지 않음](https://rvso.com/image/1605151/%EB%AA%A9%EB%A1%9D%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%95%84%EB%8B%8C%20%ED%95%AD%EB%AA%A9%EC%97%90%20%EB%8C%80%ED%95%B4%20%EB%B0%B0%EC%B9%98%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%B0%98%EB%B3%B5%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%8C.png)
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
핸들 이 실제 파일을 의미한다고 생각합니다. 이 경우에는 파일이 아닌 목록을 그 안에 넣는 것을 의미하며, 이는 구문 분석하거나 반복할 수 없는 문자열로 해석 됩니다 .command
string
file-set
file-set
delims
tokens
문제를 해결하려면 파일이 아닌 목록을 일반 목록에 넣으세요.~을 위한tokens
or 를 사용하지 않고 반복하고 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