2013-07-03 134 views
0

編輯:我剛纔已經改變了,如果到如果其他簡單通配符使用

IF "%CD:~1%"==":\" ( set FIR=%CD:~0,2% ) ELSE ( set FIR=%CD% )

嘗試使用通配符來檢測一個批處理文件的根目錄下(由於根本原因,那裏是在DIR的末尾有一個反斜槓)

我需要用一個簡單的if語句來判斷它是否是*:\。我曾嘗試使用通配符*:\和?:\但無濟於事。如果我使用驅動器盤符,例如:G:\它工作。

if %CD%==G:\ echo SOMETHING WRONG HERE 

完美地工作,直到驅動器號改變。凡爲

if %CD%==?:\ echo SOMETHING WRONG HERE 

if "%CD%"=="?:\" echo SOMETHING WRONG HERE 

不工作。

編輯:在閱讀後,事實證明,如果和通配符不兼容!

+0

通配符 通配符不受如果支持,那麼%COMPUTERNAME%== SS6 *不會匹配SS64 一種解決方法是獲取子和比較只是這些字符: SET _prefix =%COMPUTERNAME:〜0, 3% IF%_prefix%== SS6 GOTO they_matched –

回答

0

通配符在命令中的IF語句中不可用。

2

試試這個:

if "%CD:~-2%"==":\" (echo root) else echo NOT root 

看到實況help set

+0

這可能會更準確'如果「%cd:〜-2%」==「:\」echo是root' – foxidrive

+0

@foxidrive你在想什麼情況? – Endoro

+1

如果使用的路徑是c:\ abc \,那麼您的代碼也會返回它是根。根據我的建議,它會返回,它不是根。這可能是一個有爭議的問題,因爲%cd%將返回d:\ abc,並且您的代碼在任何情況下都可以正常工作。 – foxidrive