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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
5
バッチ処理でディスクの使用領域を確認する方法
Windows 7
-
6
Dirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
findstrのerrorlevel
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
syntax error, unexpected 'ech...
-
オブジェクトの中身の判定(PHP)
-
秒数の計算
-
$_SERVER["REQUEST_METHOD"]に...
-
【困る】PHP5.2での”\\f”文字列...
-
ifのなかを実行したいのですが...
-
php・10回目ごとに○○
-
ゼロとNULLを区別して number_f...
-
変数の受け渡しによる画像の表示
-
小数点以下0の非表示
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
「取得先」という表現について
-
VBA コレクションに2次元配列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
バッチファイルで、全てのウィ...
-
小数点以下0の非表示
-
ゼロとNULLを区別して number_f...
-
オブジェクトの中身の判定(PHP)
-
Windowsのsetコマンドでの小数...
-
XMLのタグの有無をPHPで判定し...
-
PHP一覧表示した項目にリンクを...
-
batファイルでPC名称の変更
-
フォームから送った半角カナの...
-
DBのハッシュ化したパスワード...
-
pdftkを使った処理をバッチファ...
-
WindowsのイベントログをExcel...
-
php mysql SELECT文でテーブル...
おすすめ情報