后藤是出乎意料的时间

时间:2019-05-05 14:13:04

标签: batch-file

当我运行脚本时,控制台打印goto was unexpected time,(我的英语不好)

@echo on
set versiyon=0.1
if %komut1%=="metin" goto metinapi
if %komut1%=="internet" goto internetapi
if %komut1%=="dosya" goto dosyaapi
if %komut1%=="sistem" goto sistem
if %komut1%=="versiyon"(
    echo %versiyon%
    pause
) 
color c 
echo Hata:Aranan sey bulunamadi!Aradiginiz seyi dogru yazdiginizdan emin 
olun!ya da frameworku guncelleyin. suanki verisyon:%versiyon% KOD:1
pause
:metinapi
if %komut2%=="degistir"(
    if %komut3%=="" goto null 
    if %komut4%=="" goto null 
    if %komut5%=="" goto null 
    setlocal ENABLEDELAYEDEXPANSION
    set str=%komut3%
    set str=%str:!komut5!=!komut4!%
    echo %str%
    pause
)
if %komut2%=="bul"(
    if %komut3%=="" goto null 
    if %komut4%=="" goto null 
    Echo.%komut3%| findstr /C:%komut4%>nul && (Echo.EVET) || (Echo.HAYIR)
    pause
)


:null
color c
echo Deger null olamaz!KOD:2
pause

您可以说为什么komuts是空的,因为我希望用户输入api.bat set komut1=metin set komut2=bul ...

1 个答案:

答案 0 :(得分:1)

您尚未声明%komut1%,因此if命令也失败了。如果执行了命令if(在第3行),那么它将是:

if =="metin" goto metinapi
   ^
   Error here, because "%komut1%" is equal to ""

要解决此问题,您可能必须在"前后加上双引号%komut1%

if "%komut1"=="metin" goto metinapi

现在,不仅如此,您还可能需要编辑更多命令才能使其正常工作,例如在修复第3行之后,您必须修复第4行和第5行,等等。