※ ChatGPTを利用し、要約された質問です(原文:Windowsのsetコマンドでの小数の問題)
Windowsのsetコマンドでの小数の問題と解決方法
このQ&Aのポイント
Windowsのバッチファイル内で使うsetコマンドの小数の問題が発生しています。具体的には、小数点以下の「.0」を付けると正しく表示されない現象が起きています。
これは、setコマンドが小数を扱う際に整数として解釈してしまうためです。解決策としては、setコマンドを使わずに小数を比較する方法や、小数点以下の「.0」を付けずに比較する方法があります。
具体的な解決方法としては、小数を扱うための専用のプログラミング言語やツールを使用することが考えられます。例えば、PythonやJavaScriptなどの言語を使えば、小数の比較や計算が容易に行えます。
Widnowsのバッチファイル内で使うsetコマンドの小数の問題で悩んでいます。
例えば、以下の線内の様なバッチファイルを実行したとします。
「2.0」以上の数値であれば、その数値を表示するというものです。
------------------------------
@echo off
if 1.0 GEQ 2.0 echo 「1.0」
if 2.0 GEQ 2.0 echo 「2.0」
if 3.0 GEQ 2.0 echo 「3.0」
if 4.0 GEQ 2.0 echo 「4.0」
if 5.0 GEQ 2.0 echo 「5.0」
if 6.0 GEQ 2.0 echo 「6.0」
if 7.0 GEQ 2.0 echo 「7.0」
if 8.0 GEQ 2.0 echo 「8.0」
if 9.0 GEQ 2.0 echo 「9.0」
if 10.0 GEQ 2.0 echo 「10.0」
if 11.0 GEQ 2.0 echo 「11.0」
if 12.0 GEQ 2.0 echo 「12.0」
if 13.0 GEQ 2.0 echo 「13.0」
if 14.0 GEQ 2.0 echo 「14.0」
if 15.0 GEQ 2.0 echo 「15.0」
if 16.0 GEQ 2.0 echo 「16.0」
if 17.0 GEQ 2.0 echo 「17.0」
if 18.0 GEQ 2.0 echo 「18.0」
if 19.0 GEQ 2.0 echo 「19.0」
if 20.0 GEQ 2.0 echo 「20.0」
if 21.0 GEQ 2.0 echo 「21.0」
if 22.0 GEQ 2.0 echo 「22.0」
if 23.0 GEQ 2.0 echo 「23.0」
if 24.0 GEQ 2.0 echo 「24.0」
if 25.0 GEQ 2.0 echo 「25.0」
if 26.0 GEQ 2.0 echo 「26.0」
if 27.0 GEQ 2.0 echo 「27.0」
if 28.0 GEQ 2.0 echo 「28.0」
if 29.0 GEQ 2.0 echo 「29.0」
if 30.0 GEQ 2.0 echo 「30.0」
if 31.0 GEQ 2.0 echo 「31.0」
pause
------------------------------
上記を実行すると、何故か「10.0」から「19.0」までの結果が表示されません。
小数点以下「.0」を付けないとうまく表示されます。
この原因は何で、どうしたら解決するのでしょうか。
また、setコマンドでは解決できない場合、setコマンドを使わずに同様の事をする方法はあるでしょうか。
ご存知の方がおられましたら、お教え頂けないでしょうか。
お礼
ご回答、ありがとうございます。 やはり、その様な処理をしないといけないのですね。 よく分かりました。やってみます。ありがとうございました。
補足
無事に目的の処理を書く事が出来ました。ありがとうございました。 あと、「setコマンド」とタイトルに入れましたが、本文のバッチファイルの例で、setコマンドを使っていませんでした。 実用しているバッチファイルではsetコマンドを使っているのですが、本文を書く際に、見やすい記述に変えようと思い、うっかり消してしまいました。失礼しました。 ですので、これはWindowsのコマンドプロンプトの仕様と思った方がいいのかも知れませんね。 大変助かりました。本当にありがとうございました。