2011-08-05 65 views
4

這是我的批處理腳本文件。有2種情況批處理腳本冒險


  • 方案1

@echo off 
set name= 
set /P TypeName=Name: %=% 

if %TypeName% == "abcd" goto correctName 
else goto wrongName 

:correctName 
echo Correct Name 
:end 

:wrongName 
echo Wrong Name 
:end 

在i作爲輸入ABCD型,i得到'中的其他' 不被識別爲內部或外部的命令,可操作的程序或批處理文件

名稱錯誤


  • 方案2

@echo off 
set name= 
set /P TypeName=Name: %=% 

if %TypeName% EQA "abcd" goto correctName 
if %TypeName% NEQ "abcd" goto wrongName 

:correctName 
echo Correct Name 
:end 

:wrongName 
echo Wrong Name 
:end 

當我作爲輸入ABCD型,我得到EQA是意外的在這個時候。 ?

有什麼錯在我的劇本我失去的東西在這裏

+0

順便問一下,你也可以使用'如果不是== somethingelse ...'。 –

回答

0

爲了給結束了這個帖子,我得到了預期的輸出這way-

@echo off 
set name= 
set /P TypeName=Name: %=% 

if "%TypeName%" == "abcd" (
echo Correct Name 
) else (
echo Wrong Name 
) 
0

第一個例子是差不多吧,只是在批處理文件中的if/else語句的格式如下:

IF <statement> (
.. 
.. 
) ELSE (
... 
... 
) 

所以只是你使用該格式,它應該工作。

+0

它會有什麼區別?因爲我在這兩個條件下只使用了一條語句 – hari

+0

也得到了關於「其他」部分的相同錯誤 – hari

0

你不應該一定需要到別人使用,這樣

@echo off 
set name= 
set /P TypeName=Name: %=% 

if %TypeName% == "abcd" goto correctName 
goto wrongName 

:correctName 
echo Correct Name 
:end 

:wrongName 
echo Wrong Name 
:end 

如果%的TypeName%==「ABCD」,它會跳轉到:correctName,如果沒有它只會下降到下一行並跳轉到:wrongName。

+0

這也是行不通的。我輸入「abcd」作爲輸入,它仍然給我「錯誤的名字」作爲輸出 無論發生什麼事情,它都跳轉到其他條件。 – hari

+0

我不太確定,雖然代碼應該可以正常工作,但是出現了問題,但由於某些原因代碼無法正常工作,所以出現批處理問題。嘗試用另一個變量名稱重新寫入新批次,然後重試。 –

+0

我已經回答了我自己的問題。它爲我工作的方式。我必須包圍%TypeName%與「」.. – hari

1
  1. ELSE應該對與IF關鍵字或上與閉合托架,涉及到的IF同一行的同一行。

    像這樣:

    IF %TypeName% == "abcd" GOTO correctName ELSE GOTO wrongName 
    

    或者這樣:

    IF %TypeName% == "abcd" (
        ECHO Correct. 
        GOTO correctName 
    ) ELSE GOTO wrongName 
    
  2. 平等操作正確的關鍵字是EQU

    IF %TypeName% EQU "abcd" GOTO correctName 
    
+0

這是一個不同的問題。你需要在回顯'Correct Name'後跳過':wrongName'部分。嘗試在ECHO Correct Name後面加上GOTO:EOF。而且你不能使用兩個同名的標籤(我的意思是':end'標籤)。 –

+0

我跟着的yours- 該解決方案IF%的TypeName%== 「ABCD」 GOTO correctName ELSE GOTO wrongName 和 如果類型名%EQU% 「ABCD」 轉到correctName,否則,轉至wrongName 和我GOT- 正確名稱 錯誤名稱 然後我也跟着的yours- 該解決方案IF%的TypeName%== 「ABCD」( ECHO正確的。 GOTO correctName ),否則,轉至wrongName 和我GOT- 名稱錯誤 – hari

+0

其實我試圖說我的病情有問題,這不是有效的即使我給了正確的輸入值。 – hari