2012-07-17 6 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'を使い、コードの後の2番目の変数に対して' SET/A'を実行します。 – LittleBobbyTables

+0

今それを試してみてください。まだ動作しません。今私は2つの* 'Missing operator'エラーを受け取ります。 – Iszi

関連する問題