プロが教えるわが家の防犯対策術!

バッチファイルで電卓を作ったのですが
@echo off
set /p a="a:"
set /p b="b:"
set /a %a%+%b%
pause
答えが出てきませんどうすればいいのですか?

A 回答 (5件)

コマンドプロンプトで実行した場合と、バッチファイルの中で実行した場合で動作が異なるコマンドは結構あります。



set /a 式
は、直接実行すると結果を表示しますが、バッチファイルの中で書くと表示しません。
set /a X=式
echo %X%
のように変数に結果をセットして表示しないといけません。

他にも、copy aa bb で、bbが既に存在する場合、
直接実行すると上書きするかどうか聞いてきますが、バッチファイルの中に書くと聞かずに上書きコピーします。
/y と /-y で聞くかどうか変更できますが、どちらも指定しない場合の動作が異なると言うことです。
    • good
    • 1

以下のような感じで出来るようです。

小数点以下の計算は出来ないですけれどね。

――――――――――――――――――

@echo off
echo.  
echo. 式を入力してEnterキーを押してください。
echo.  
echo.―――――――
:top
set /p sum=
set /a ans=%sum%
echo = %ans%
echo.―――――――
goto top

――――――――――――――――――

参考元
https://tysenorsborn.wixsite.com/batchfiles/blan …
    • good
    • 1

ふーん。

電卓をコマンドラインで再現したいなら,コマンドラインのプロンプトに対して 3+4 でエンターキーを押したら 7 と表示されないと意味が無いですし,3-4 でも 3*4 でも 3/4 でも正解が出ないと,電卓バッチ処理とは言えないですけどねぇ。
    • good
    • 1

これを電卓とは言わないですが。



@echo off
set /p a="a:"
set /p b="b:"
set /a c=a+b
echo %a%+%b%=%c%
pause
    • good
    • 3

バッチファイルを改修。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!