2011-09-05 4 views

답변

4

다음 스크립트는 당신에게 드라이브에 사용 가능한 바이트 줄 것이다 :이 여유 공간을 포함하는 마지막 줄 필요가 당신의 dir 명령의 출력에 의존

@setlocal enableextensions enabledelayedexpansion 
@echo off 
for /f "tokens=3" %%a in ('dir c:\') do (
    set bytesfree=%%a 
) 
set bytesfree=%bytesfree:,=% 
echo %bytesfree% 
endlocal && set bytesfree=%bytesfree% 

주 형식은 24 Dir(s) 34,071,691,264 bytes free입니다. 특히 :

  • 그것은 마지막 줄을해야합니다 (또는 모든 라인 bytesfree 설정에 의존하는 것보다 명시 적으로 오히려 선을 감지하는 for 루프를 수정할 수 있습니다).
  • 여유 공간은 세 번째 "단어"여야합니다 (또는 tokens= 비트를 변경하여 다른 단어를 얻을 수 있음).
  • 수천 개의 구분 기호는 , 문자입니다 (또는 쉼표를 다른 것으로 변경할 수 있습니다).

종료시 변수 bytesfree 만 설정하면 환경 네임 스페이스가 오염되지 않습니다. dir 출력이 다른 경우 (예 : 다른 로케일 또는 언어 설정) 스크립트를 조정해야합니다.

+0

이 스크립트의 출력을 사용하고 삭제해야하는지 결정하기 위해 'if'표현식을 작성해야했습니다. 드라이브에서 오래된 파일. 내가 사용 : 'ECHO % bytesfree %> x & FOR %%? IN (x) DO SET/A strlen = %% ~ z? - 2 & del x * 개행 * IF % strlen % LEQ 13 [...]' –

관련 문제