Командная строка VS2008 + Cygwin

Ваш путь должен быть изменен так, чтобы он работал:

@echo off

rem Your code before the code you provided above ^^

:forest1
echo You awake in a forest, you do not know where you are or why you are there.
echo In front of you is a small goblin like creature
goto :recoil1

:recoil1
set /p "answer=What do you do? "
if "%answer%" == "run" (
    goto :run1
) else (
    if "%answer%" == "attack" (
        goto :attack1
    ) else ( 
        if "%answer%" == "befriend" (
            goto :befriend1
        ) else (
            if "%answer%" == "scream" (
                goto :scream1
            ) else ( 
                if "%answer%" == "dance" (
                    goto :dance1
                ) else (
                    echo Nothing happened.
                    timeout /t 1
                    goto :forest1
                )
            )
        )
    )
)

Понимаете: это немного сложно; Вы пропустили много скобок!

Итак, используйте команду choice с некоторыми изменениями:

@echo off

rem Your code before the code you provided above ^^

:forest1
echo You awake in a forest, you do not know where you are or why you are there.
echo In front of you is a small goblin like creature
goto :recoil1

:recoil1
echo What do you do? Here is a list of options:
echo r - run away
echo a - attack the goblin
echo b - be friend with the goblin
echo s - scream
echo d - dance
echo n - do nothing

choice /C:rabsdn /N

if errorlevel 6 (
    echo Nothing happened.
    timeout /t 1
    goto :forest1
)
if errorlevel 5 goto :dance1
if errorlevel 4 goto :scream1
if errorlevel 3 goto :befriend1
if errorlevel 2 goto :attack1
if errorlevel 1 goto :run1

, что яснее, быстрее и удобочитаемее, не так ли?

[ 1113] Примечание: if с errorlevel должны быть в порядке убывания, потому что if errorlevel n означает, что errorlevel больше или равно - n!

Измените параметры, чтобы они лучше подходили для вас.

13
задан Agnel Kurian 15 September 2008 в 09:38
поделиться

3 ответа

Согласно эта страница Вы должны:

"В зависимости от Вашего предпочтения, можно или добавить переменные, требуемые для компиляции прямо к среде, или использовать сценарий vcvars32.bat для установки их для Вас. Обратите внимание, что необходимо скомпилировать от оболочки удара cygwin, для использования vcvars32, первый показ оболочка DOS, затем выполнить vcvars32.bat, затем выполнить cygwin.bat из каталога, где Вы установили cygwin. Можно ускорить это путем добавления каталога containgin vcvars32 (где-нибудь под \Microsoft Визуальным Studio\VC98\bin) и каталога, содержащего cygwin.bat к пути".

16
ответ дан 1 December 2019 в 21:12
поделиться

Вот мой демонстрационный файл Cygwin.bat, который настраивает Visual Studio и запускается мятный

@echo off
@REM Select the latest VS Tools
IF  EXIST %VS100COMNTOOLS% (
    CALL "%VS100COMNTOOLS%\vsvars32.bat"
    GOTO :start_term
)

IF  EXIST %VS90COMNTOOLS% (
    CALL "%VS90COMNTOOLS%\vsvars32.bat"
    GOTO :start_term
)

IF  EXIST %VS80COMNTOOLS% (
    CALL "%VS80COMNTOOLS%\vsvars32.bat"
    GOTO :start_term
)

:start_term

C:
chdir C:\cygwin\bin
START mintty.exe -i /Cygwin-Terminal.ico -
10
ответ дан 1 December 2019 в 21:12
поделиться

ответ witkamp'а работает для vs2005 - для vs2008 используйте

CALL "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

1
ответ дан 1 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: