2017-09-19 2 views
0

연습용으로 폴더에 포함 된 1MB보다 큰 파일을 표시하는 배치 스크립트를 작성하려고합니다. 스크립트가 "c"환경 변수를 존재하지 않는 것처럼 처리한다는 점을 제외하고는 모든 것이 잘됩니다. 나는 if 문을 echo %c%으로 바꿨다. 결과는 echo가 꺼져서 "c"가 존재하지 않는다는 것을 의미한다.환경 변수 및 && 매개 변수

어떻게이 문제를 극복하고이 작업을 수행하는 또 다른 방법이 있다면 좋을 것입니다. 그런데 시간 내 주셔서 감사합니다.

@echo off 
set /p a=Enter the extension 
cd %~dp0 
for /r %%T in (*.%a%) do set /a "c=%%~zT/(1024*1024)" && if %c% geq 1 echo %%~fT is greater than 1 MB 
+3

연구 지연 확장 – Compo

+0

SETLOCAL ENABLEDELAYEDEXPANSION – lit

+0

확인하여 C 세트의 값에 액세스 할 수 있습니다! 지연 확장은 어떻게해야합니까? – TahaEltahawy

답변

0

사람들이 지연 확장은 내가이 문제를 어떻게 해결 했는가. 그것은 그렇게 될 것입니다. ! c! SET 문

@echo off 
setlocal enabledelayedexpansion 
set /p a=Enter the extension 
cd %~dp0 
for /r %%T in (*.%a%) do set /a "c=%%~zT/(1024*1024)" && if !c! geq 1 echo %%~fT is greater than 1 MBs 
+0

단순히 if %% ~ zi geq 1048576 ...'? – Stephan

+0

'MB '대신'MiB'를 읽으면 안됩니까? [이 위키 피 디아 문서] (https://en.wikipedia.org/wiki/Mebibyte)를 참조하십시오. – Stephan