다음 코드는 내 컴퓨터에서 작동 스크립트가 실행될 때마다 표현식 평가를 수행하는 대신 실행됩니다. 이것은 또한 카운트의 분석이 다른 곳으로 옮겨 졌기 때문에 스크립트를 더 빨리 만들 수 있다는 장점이 있습니다.
카운터 파일은 매번 1 바이트 씩 확장되므로 파일이 확장되므로 실제로 많은 횟수로 호출해야합니다. 그러나 1 초에 한 번 호출해도 1G 파일은 30 년 후에 만 발생합니다. 스크립트의 상단에
, 그냥 넣어 :
는
set >>countfile.txt <nul: /p x=X
이 단순히 countfile.txt
파일의 끝에 스크립트가 호출 될 때마다 문자 X
를 추가합니다. "set/p
"명령을 사용하여 입/출력 리다이렉션을 수행합니다.이 방법은 문자 뒤에 CR/LF (UNIX "echo -n
"처럼)를 사용하지 않고 문자를 가져 오는 유일한 방법입니다.
다음 호출과 같이 파일 크기 환경 변수 수정자를 사용할 수 있습니다 (스크립트 실행보다 실행 빈도가 적기를 기대합니다. 여기 꿀꿀 작품은) 사실, 그것은 오히려 디렉토리 항목에서 직접 정보를 얻을, 그것은 문자를 계산하지 이후 고된 많은 일이 아니다] :
@echo off
goto :main
:getsize
echo %~z1
goto :eof
:main
setlocal enableextensions enabledelayedexpansion
call :getsize countfile.txt
endlocal
이 카운트를 재설정 극단적으로 다음을 사용하려면 복잡한 명령 (나는 이것을 특허로 생각하고있다) :
del countfile.txt
다른 제안 사항 - 에코를 방지하기 위해 모든 명령 앞에 "@
"을 붙일 필요가 없습니다. "@echo off
"을 전역 노 에코를위한 스크립트 상단에 간단하게 입력 할 수 있습니다. 일부 명령을 선택적으로 에코하려면이 단락을 무시하십시오.
여러분을 환영합니다. 이 경우 답변을 수락 할 수있는 옵션이 있습니다. :) – Joey