, 우리가 당신의 wmic
명령을 조금 수정할 수 :
wmic VOLUME WHERE (DriveLetter^>"" AND DriveType=2) GET DriveLetter /VALUE
DriveLetter>""
부분은 드라이브 문자가없는 모든 볼륨을 제거하기위한 것입니다.
루프에서 실제 드라이브 문자를 얻을
for /F
를 사용하여 다른 작업을 위해 이것을 사용하려면
for /F "tokens=2 delims==" %%V in ('
wmic VOLUME WHERE ^(DriveLetter^^^>"" AND DriveType^=2^) GET DriveLetter /VALUE
') do for /F "delims=" %%L in ("%%V") do (
echo current drive: %%L
rem change to the root of the drive temporarily:
pushd %%L\
rem do your actions here, like `copy` for example (give true destination!):
copy *.* nul
rem change back to previous directory:
popd
)
여러 특수 문자가 for /F
명령 내에서 사용할 때 이스케이프 할 필요가; 추가 ^
자를 설명합니다.
실제로는 외부가 wmic
출력을 처리하는 두 개의 중첩 된 for /F
루프가 있습니다 (자세한 내용은 for /?
참조). wmic
은 문제를 일으킬 수있는 추가 캐리지 리턴을 출력하므로 작은 트릭을 사용했습니다. 다른 하나의 루프에 다른 for /F
루프를 중첩 시켰습니다.이 루프는 외부 루프의 반복마다 정확히 한 번 반복됩니다.
내부 샘플 copy
명령 대신 다른 명령을 사용하여 물론 다른 동작을 수행 할 수 있습니다.