나는이 있습니다문자열을 정수와 비교하는 방법은 무엇입니까?
@echo off
setlocal ENABLEDELAYEDEXPANSION
set bla="-666"
set zzz="333"
if !zzz! LSS !bla! echo lesser
pause
이 잘못되는 날 "작은"제공합니다. 나는 ASCII 값 때문에 이것이라는 것을 알고있다. 그러나 마치 숫자 인 것처럼 그들을 비교하는 방법은 무엇입니까?
편집 :
좀 더 코드 : 답변의
set mn=99999
for /f "tokens=1-9" %%a in (%%g) do (
set zzz=%%d
)
if "!zzz!" LSS "!mn!" set mn=!zzz!
없음 아래 당신은 blackquotes의 잘못된 사용을 복용하는 나에게 올바른 지금까지 결과 ...
이것은 따옴표를 제거하는 매우 강력한 방법은 아닙니다 (빈 문자열'bla = ""'). 오히려'for % -a for (! bla!) do/a bla = %% ~ a + 0'와 같이'for'-loop를 사용하여 할 수 있습니다. –
@EitanT 맞습니다. for를 사용하면 변수가 비어 있거나 ("") 따옴표 없이도 일반적인 경우보다 안전합니다. 내 대답이 선택되었으므로 편집합니다. –