2012-07-17 3 views
5

집합 변수에 대해 수행 된 모듈러스 작업 결과에 따라 작업을 수행하는 배치 파일을 작성하려고합니다. 그러나, 나는 그것을 아주 좋아 보이지 않을 수 있습니다.배치에서 모듈러스 연산을 올바르게 수행하려면 어떻게해야합니까?

처음에는 수학 연산에 대한 구문을 테스트하기 위해 원하는 결과를 생성하는 간단한 스크립트를 얻으려고했습니다.

:START 
SETLOCAL 
SET /P Input-Num="Input Number: " 
SET /A Input-Num=%Input-Num% %% 2 
ECHO %Input-Num% 
ENDLOCAL 
PAUSE 
:END 

I 입력 5, 예상 출력 1 경우. 그러나 그 대신에 나는 Missing operator.이라고 말하는 메시지를 얻었고 5을 출력합니다.

내가 뭘 잘못하고 있니?

+0

이 DOS 또는 다른 것입니까? 그 정확한 샘플을 실행할 때'Missing operator'를 사용하여'1'을 얻습니다. (상단에'@ECHO OFF'가 추가되었습니다) – LittleBobbyTables

+1

배치 파일의 코드가 잘 작동합니다. CMD에 직접 입력하는 경우'% '를 이스케이프 처리하지 마십시오. '%% '대신에'%'를 사용하십시오. – vcsjones

+0

@LittleBobbyTables 먼저 화면 이름을 좋아합니다. Windows 7의 CMD에 있습니다. 태그를 업데이트했습니다. – Iszi

답변

4

5를 더 이상 숫자 값으로 처리하지 않으므로 SET /P을 사용하면 문제가됩니다. 위의 예가 예상대로 작동합니다.

+0

'SET/P' (또는 비슷한 동작을 할 수있는) * 및 * 변수에 수학 연산을 수행하는 방법이 있습니까? – Iszi

+0

이 링크 참조 : http://stackoverflow.com/a/684389/334849. 그들은'SET/P'를 사용하고, 나중에 코드에서 두 번째 변수에 대해'SET/A'를합니다. – LittleBobbyTables

+0

지금 시도했습니다. 아직도 작동하지 않습니다. 이제 나는 * 2 개의'Missing operator' 오류를 얻습니다. – Iszi

관련 문제