請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Sign in with google

Google帳號登入

搜索
回覆 4則 瀏覽 26561篇
Line

[問題已解決] 請教一個IF數字比對的問題

該用戶從未簽到

升級   50.5%

發表於 2023-2-8 09:23 | 顯示全部樓層 |閱讀模式
本帖最後由 jmsdhn 於 2023-2-8 14:21 編輯

打擾了!以下是內容
set/p AAA=
if %AAA$ LSS 2 ( echo YYY ) else ( echo NNN )

但輸入必須是00~09
也就是前面須補滿0
結果發現
00~07都顯示他們該有的結果
但08~09都顯示YYY
怎回事!?

之後發現兩種解法:
1)08~09只能輸入8或9
但這不實際(個人有特殊用途)
2)把指令中的 LSS 2 改成 LSS 02
一切才正常

不懂!
是字元順序還是字元串數量的問題?
感謝解惑!

樓主熱門主題

該用戶從未簽到

升級   0%

發表於 2023-2-8 12:25 | 顯示全部樓層
本帖最後由 maodou 於 2023-2-8 12:37 編輯
  1. @ECHO OFF
  2. SET /P AAA=
  3. SET /A AAA = 100000%AAA% %% 100000
  4. IF %AAA% LSS 2 (ECHO YYY) ELSE (ECHO NNN)
複製代碼
  • 詳細解說,熱心助人

    foster 貢獻度 +3

使用道具

該用戶從未簽到

升級   50.5%

 樓主| 發表於 2023-2-8 14:20 | 顯示全部樓層
感謝回應
原來是要取餘數
有點淨化的概念

個人把那兩個10000各自少0或加0
都可以得到8或9的正確結果
AAA太長會溢出就是

不過個人還是很好奇
為何個人寫的那指令(寫成LSS 2)的情況下
若輸入08或09
為何會一定輸出YYY
而輸入02~07卻可以輸出NNN
好詭異
難道和它的二進制有關
總之感謝教學

使用道具

該用戶從未簽到

升級   0%

發表於 2023-2-8 15:20 | 顯示全部樓層
jmsdhn 發表於 2023-2-8 14:20
若輸入08或09
為何會一定輸出YYY
而輸入02~07卻可以輸出NNN

(推測的)
在Batch檔裡面, 前面補零的數字會視為八進位


1 0

使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2024-3-29 15:25

Discuz! X

© 2009-2023 Microduo

快速回覆 返回頂部 返回列表