@ECHO OFF
for /f "tokens=1,2 skip=2 delims==" %%a in ('wmic pagefile list /format:list') do (
IF "%%a"=="AllocatedBaseSize" SET TOTAL=%%b
IF "%%a"=="CurrentUsage" SET USAGE=%%b
)
SET TOTAL
SET USAGE
set /a perc = 100 * USAGE/TOTAL
echo used: %perc%%%
----- OUTPUT -----
TOTAL=4095
USAGE=728
used: 17%
지금까지 내가 그것을 모방 할 수 있었다
(for /f "tokens=1,2 skip=2 delims==" %a in ('wmic pagefile list /format:list') do @(IF "%a"=="AllocatedBaseSize" (SET TOTAL=%b) ELSE (IF "%a"=="CurrentUsage" SET USAGE=%b))) & SET TOTAL & SET USAGE & set /A perc=100*USAGE/TOTAL & echo|set /p dummy=% of usage
----- OUTPUT -----
TOTAL=4095
USAGE=724
17% of usage
하지만 내가 매우 못생긴 해킹을 사용하고 있기 때문에 echo|set /p dummy=% of usage
. 내 문제는 단지 echo %perc%%
시도했을 때 %perc%%
인쇄합니다. 그래서 지금 난 그냥 set /A
의 출력을 "사용의"추가 해요 - 먼저는 문서 set /?
에 따라이 출력을 생략하는 것은 불가능하다는 것 때문에 :
SET/A는 명령 줄에서 실행되는 경우 명령 스크립트 외부에있는 경우 표현식의 최종 값을 표시합니다.
perc
변수 값을 인쇄 할 수 없기 때문에 두 번째.
C:\>set x=1 & echo %x%
%x%
C:\>echo %x%
1
어떤 도움/설명이 환영 :
는 명확하게하기 위해 내 문제는 단순화 할 수있다.시도한 SetX variable value
도 있습니다.
이 글을 쓰는의 끝에서 나는 새로운 쉘을 산란하는 생각이있어 (IF "% a"== "CurrentUsage"SET USAGE = % b))) & SET (IF "% a"== "AllocatedBaseSize"(SET TOTAL = % b) TOTAL & SET USAGE & set/A perc = 100 * USAGE/TOTAL & cmd/K "에코 사용은 % perc %%"입니다. 물론 작동하지만 여전히'set/A'는 원하지 않는 문자열을 출력합니다. 지금은 피곤하다. - 올바른 방법으로) –
명령 줄에서'cmd/V : ON/C set/A x = 2-1 ^> NUL^& echo! x!'명령을 실행하면 다음과 같이 표시된다. '1'. 이 방법은 또한 작동합니다 :'cmd/V : ON/C "set/A x = 2-1> NUL & echo! x!"' – Aacini