iT邦幫忙

1

CMD條件式比較式的問題

  • 分享至 

  • xImage
set /p YourChoice1=in number:
set ErrorMessage=Error
if /i ( ( "%YourChoice1%" == "" ) || ( "%YourChoice1:~0,1%" == "\" ) || ( "%YourChoice1:~-1,1%" == "\" ) ) ( echo %ErrorMessage% )

想要( "%YourChoice1%" == "" )、( "%YourChoice1:~0,1%" == "" )、( "%YourChoice1:~-1,1%" == "" )其中一個達成就輸出(echo %ErrorMessage%)
但是我無法運行,可以請各位大大解答哪裡有問題嗎?~

wiseguy iT邦超人 1 級 ‧ 2023-01-09 16:48:20 檢舉
建議不要全部黏在一起,batch 很注重空白。
比如 ("%YourChoice1:~0,1%"=="\") 最好寫成
( "%YourChoice1:~0,1%" == "\" )
各個元素用空白隔開,比較不會有問題。
除非語法教你要黏在一起,不然黏在一起會被 batch 當成一整串。
dahezhi iT邦新手 4 級 ‧ 2023-01-09 16:58:40 檢舉
謝謝你回答,但是改好了還是不能運行~
misadm iT邦高手 10 級 ‧ 2023-01-10 08:58:30 檢舉
你搞錯 IF 的用法,在 DOS 下,IF 是不支援 "AND"、"OR" 邏輯運算。你可以在命領提示字元下,輸入 if /? 就會有詳細說明。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
alien663
iT邦研究生 3 級 ‧ 2023-01-10 09:07:20
最佳解答

遇到類似問題,可以用英文查一下,很容易就可以查到了。
How can I use multiple conditions in "If" in batch file?

dahezhi iT邦新手 4 級 ‧ 2023-01-10 09:19:56 檢舉

謝謝你回答,已經了解了~

0
雷峰
iT邦研究生 1 級 ‧ 2023-01-09 17:13:05

set /p YourChoice1=in number:
set ErrorMessage=Error
if /i ("%YourChoice1%" == "") or ("%YourChoice1:~0,1%" == "") or ("%YourChoice1:~-1,1%" == "") echo %ErrorMessage%

不太確定上面是不是你要的@@

dahezhi iT邦新手 4 級 ‧ 2023-01-09 17:17:33 檢舉

謝謝你回答,但是還是不能運行~

1

我記得SHELL的IF是沒有AND跟OR的。

只能利用IF ELSE IF的方式處理。或是採用GOTO的處理方式。

dahezhi iT邦新手 4 級 ‧ 2023-01-10 09:19:37 檢舉

謝謝你回答,想選你為解答,但是有人提供的網址裡面介紹比較詳細,抱歉拉~

我要發表回答

立即登入回答