所以,我下面的批處理腳本:平等變量 - 批
@echo off
set /p name=
rem a random number, don't care about it.
set complete_name=%name%.Creepy
Goto STEP1
:STEP1
echo %complete_name%|findstr /C:"9000" >nul 2>&1
if not errorlevel 1 (
goto 9000
) else (
GOTO CHECK2
)
:CHECK2
echo %complete_name%|findstr /C:"930" >nul 2>&1
if not errorlevel 1 (
goto 930
) else (
GOTO CHECK3
)
:CHECK3
echo %complete_name%|findstr /C:"310" >nul 2>&1
if not errorlevel 1 (
goto 310
) else (
ECHO PROBLEM
)
:9000
ECHO 9000
PAUSE
:930
ECHO 930
PAUSE
:310
ECHO 310
PAUSE
我想它來檢查「9000」是可變的判斷,同爲「930」和「310」。如果這些數字都不在變量Echo問題中。但是每次我運行這個腳本,它都會到ECHO PROBLEM
,即使9000/920/310在%complete_name%
。那麼,這是檢查一個變量是否在另一個變量中的正確方法,或者有一種更簡單的方法來做到這一點?
所以我試過這段代碼:
@echo off
set name=310
set complete_name=%name%.Creepy
Goto STEP1
:STEP1
setlocal
if "%complete_name:9000=%"=="%complete_name%" (
if "%complete_name:930=%"=="%complete_name%" (
if "%complete_name:310=%"=="%complete_name%" (
echo PROBLEM
) else (
goto 9000
)
) else (
goto 930
)
) else (
goto 310
)
goto :eof
但我被困在echo problem
......
而不是使用'GOTO',嘗試嵌套'IF ...(...)ELSE(...)'方法。並學習[變量編輯/替換](http://ss64.com/nt/syntax-replace.html) – JosefZ 2014-11-24 12:27:08
事實上這適用於我。排除你的子程序不以'exit/b'結尾的事實或者「goto:eof」。 – npocmaka 2014-11-24 12:32:30
@JosefZ我的目標不是「編輯/替換」一個變量。我不明白我怎麼可以用'IF ...(...)ELSE(...)'而不是'GOTO'。 @npocmaka這只是我試圖使用的腳本的一部分。所以我使用「暫停」來測試它是否有效。 – Prixeler 2014-11-24 15:06:28