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コマンドを使わずに同様の事をする方法はあるでしょうか。
ご存知の方がおられましたら、お教え頂けないでしょうか。
No.1ベストアンサー
- 回答日時:
バッチファイルでは実数(小数点を含む数値)をそのまま扱うことはできません。
一度文字列として展開し小数点を取り除いた値の桁合わせを行ったのちに比較してはいかがでしょう。
この回答への補足
無事に目的の処理を書く事が出来ました。ありがとうございました。
あと、「setコマンド」とタイトルに入れましたが、本文のバッチファイルの例で、setコマンドを使っていませんでした。
実用しているバッチファイルではsetコマンドを使っているのですが、本文を書く際に、見やすい記述に変えようと思い、うっかり消してしまいました。失礼しました。
ですので、これはWindowsのコマンドプロンプトの仕様と思った方がいいのかも知れませんね。
大変助かりました。本当にありがとうございました。
ご回答、ありがとうございます。
やはり、その様な処理をしないといけないのですね。
よく分かりました。やってみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
Dirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)
UNIX・Linux
-
-
4
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
5
バッチファイル 二つ上のディレクトリのパス取得
その他(プログラミング・Web制作)
-
6
.txtファイルの空白を全て消去(データ間を詰める)
その他(パソコン・スマホ・電化製品)
-
7
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
8
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
9
コマンドプロンプト標準出力とファイル出力両方
その他(プログラミング・Web制作)
-
10
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
11
DOSコマンドでのワイルドカードの使い方
Windows Vista・XP
-
12
バッチファイルでディレクトリの使用容量を取得したい
ネットワーク
-
13
バッチで特定文字が含まれる先頭行を取得したい
Windows Me・NT・2000
-
14
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
15
コマンドプロンプトでファイル名に含まれるスペースを別の文字に置換したい
その他(プログラミング・Web制作)
-
16
バッチ処理でディスクの使用領域を確認する方法
Windows 7
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
小数点以下0の非表示
-
syntax error, unexpected 'ech...
-
オブジェクトの中身の判定(PHP)
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
PHPの例外処理について教えてく...
-
checkboxでの複数選択削除がわ...
-
バッチファイルで、全てのウィ...
-
電話番号入力確認 やっぱり分...
-
$_SERVER["REQUEST_METHOD"]に...
-
メールアドレスのチェック
-
Windowsのsetコマンドでの小数...
-
レスポンスタイムアウトの回避...
-
シェルで正規表現 YYYY/MM/DD
-
画像の削除
-
PHPでのパスワード制限のセキュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
phpでcookieがうまく保存されない
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
syntax error, unexpected 'ech...
-
findstrのerrorlevel
-
バッチファイルで、全てのウィ...
-
PHPで訪問回数を表示するカウン...
-
PHP一覧表示した項目にリンクを...
-
DBのハッシュ化したパスワード...
-
小数点以下0の非表示
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
PHPでのパスワード制限のセキュ...
-
bashの関数の引数にスペースが...
-
RSSにdiv,ul classを付けたいの...
-
pdftkを使った処理をバッチファ...
-
ゼロとNULLを区別して number_f...
-
コマンドプロンプト フォルダ内...
おすすめ情報