由于 ASCII,批处理脚本崩溃。我能做什么?

问题描述 投票:0回答:1

我已经在批处理脚本中“编程”了石头、剪刀、布。它曾经工作得很好,直到我合并了 ASCII 艺术。该脚本运行平稳,直到我输入 1 到 3 之间的数字,之后脚本因某种原因突然终止。有人可以帮我找出问题吗? 批处理脚本:

@echo off
setlocal
chcp 65001 >nul

set Sieg=0
set Niederlage=0
set Unentschieden=0

:menu
cls
color f
echo Willkommen im Spiel!
echo.
echo 1. Schere
echo 2. Stein
echo 3. Papier
echo.
echo.
echo Ergebnisse:
echo Siege: %Sieg%
echo Niederlagen: %Niederlage%
echo Unentschieden: %Unentschieden%

set /p Userwahl="Bitte wählen Sie eine Zahl (1/2/3): "

set /a Scriptwahl=%random% %% 3 + 1

cls
if "%Userwahl%"=="1" set Userwahl=Schere
if "%Userwahl%"=="2" set Userwahl=Stein  
if "%Userwahl%"=="3" set Userwahl=Papier

if "%Scriptwahl%"=="1" set Scriptwahl=Schere
if "%Scriptwahl%"=="2" set Scriptwahl=Stein
if "%Scriptwahl%"=="3" set Scriptwahl=Papier

if "%Userwahl%"=="%Scriptwahl%" (
    if "%Userwahl%"=="Schere" (
        echo      _______                                   _______
        echo ---'   ____)____      #    #  ####       ____(____   '---
        echo           ______)     #    # #          (______
        echo        __________)    #    #  ####      (__________
        echo       (____)          #    #      #           (____)
        echo ---.__(___)            #  #  #    #           (___)__.---
        echo                         ##    ####
        timeout /t 3 > nul                   
    ) else if "%Userwahl%"=="Stein" (
        echo     _______                           _______
        echo ---'   ____)     #    #  ####        (____   '---
        echo       (_____)    #    # #           (_____)
        echo       (_____)    #    #  ####       (_____)
        echo       (____)     #    #      #       (____)
        echo ---.__(___)       #  #  #    #        (___)__.---
        echo                    ##    ####         
        timeout /t 3 > nul
    ) else if "%Userwahl%"=="Papier" (
        echo      _______                                  _______
        echo ---'    ____)____     #    #  ####       ____(____    '---
        echo            ______)    #    # #          (______
        echo           _______)    #    #  ####      (_______
        echo          _______)     #    #      #      (_______
        echo ---.__________)        #  #  #    #       (__________.---
        echo                         ##    ####
        timeout /t 3 > nul                       
    color 6
    echo #     #                                          
    echo #     # #    # ###### #    # #####  ####   ####  #    # # ###### #####  ###### #    # 
    echo #     # ##   # #      ##   #   #   #      #    # #    # # #      #    # #      ##   # 
    echo #     # # #  # #####  # #  #   #    ####  #      ###### # #####  #    # #####  # #  # 
    echo #     # #  # # #      #  # #   #        # #      #    # # #      #    # #      #  # # 
    echo #     # #   ## #      #   ##   #   #    # #    # #    # # #      #    # #      #   ##  
    echo  #####  #    # ###### #    #   #    ####   ####  #    # # ###### #####  ###### #    # 
    timeout /t 3 > nul
    set /a Unentschieden+=1
) else if "%Userwahl%"=="Schere" (
    if "%Scriptwahl%"=="Papier" (
        echo     _______                                   _______
        echo ---'   ____)____      #    #  ####       ____(____    '---
        echo           ______)     #    # #          (______
        echo        __________)    #    #  ####      (_______
        echo       (____)          #    #      #      (_______
        echo ---.__(___)            #  #  #    #       (__________.---
        echo                         ##    ####   
        timeout /t 3 > nul              
        color a
        echo  #####                  
        echo #     # # ######  ####  
        echo #       # #      #    # 
        echo  #####  # #####  #      
        echo       # # #      #  ### 
        echo #     # # #      #    # 
        echo  #####  # ######  #### 
        timeout /t 3 > nul
        set /a Sieg+=1
    ) else (
        echo     _______                               _______
        echo ---'   ____)____      #    #  ####       (____   '---
        echo           ______)     #    # #          (_____)
        echo        __________)    #    #  ####      (_____)
        echo       (____)          #    #      #      (____)
        echo ---.__(___)            #  #  #    #       (___)__.---
        echo                         ##    ####         
        timeout /t 3 > nul
        color 4
        echo #     #                                      
        echo ##    # # ###### #####  ###### #####  #        ##    ####  ###### 
        echo # #   # # #      #    # #      #    # #       #  #  #    # #      
        echo #  #  # # #####  #    # #####  #    # #      #    # #      #####  
        echo #   # # # #      #    # #      #####  #      ###### #  ### #      
        echo #    ## # #      #    # #      #   #  #      #    # #    # #      
        echo #     # # ###### #####  ###### #    # ###### #    #  ####  ######      
        timeout /t 3 > nul
        set /a Niederlage+=1
    )
) else if "%Userwahl%"=="Stein" (
    if "%Scriptwahl%"=="Schere" (
        echo     _______                               _______
        echo ---'   ____)     #    #  ####        ____(____   '---
        echo       (_____)    #    # #           (______
        echo       (_____)    #    #  ####      (__________
        echo       (____)     #    #      #           (____)
        echo ---.__(___)       #  #  #    #           (___)__.---
        echo                    ##    ####           
        timeout /t 3 > nul
        color a
        echo  #####                  
        echo #     # # ######  ####  
        echo #       # #      #    # 
        echo  #####  # #####  #      
        echo       # # #      #  ### 
        echo #     # # #      #    # 
        echo  #####  # ######  #### 
        timeout /t 3 > nul
        set /a Sieg+=1
    ) else (
        echo     _______                               _______
        echo ---'   ____)     #    #  ####        ____(____    '---
        echo       (_____)    #    # #           (______
        echo       (_____)    #    #  ####      (_______
        echo       (____)     #    #      #      (_______
        echo ---.__(___)       #  #  #    #       (__________.---
        echo                    ##    ####        
        timeout /t 3 > nul
        color 4
        echo #     #                                      
        echo ##    # # ###### #####  ###### #####  #        ##    ####  ###### 
        echo # #   # # #      #    # #      #    # #       #  #  #    # #      
        echo #  #  # # #####  #    # #####  #    # #      #    # #      #####  
        echo #   # # # #      #    # #      #####  #      ###### #  ### #      
        echo #    ## # #      #    # #      #   #  #      #    # #    # #      
        echo #     # # ###### #####  ###### #    # ###### #    #  ####  ###### 
        timeout /t 3 > nul 
        set /a Niederlage+=1
    )
) else if "%Userwahl%"=="Papier" (
    if "%Scriptwahl%"=="Stein" (
        echo      _______                              _______
        echo ---'    ____)____     #    #  ####       (____   '---
        echo            ______)    #    # #          (_____)
        echo           _______)    #    #  ####      (_____)
        echo          _______)     #    #      #      (____)
        echo ---.__________)        #  #  #    #       (___)__.---
        echo                         ##    ####    
        timeout /t 3 > nul
        color a
        echo  #####                  
        echo #     # # ######  ####  
        echo #       # #      #    # 
        echo  #####  # #####  #      
        echo       # # #      #  ### 
        echo #     # # #      #    # 
        echo  #####  # ######  #### 
        timeout /t 3 > nul
        set /a Sieg+=1
    ) else (
        echo      _______                                   _______
        echo ---'    ____)____     #    #  ####         ___(____   '---
        echo            ______)    #    # #           (______
        echo           _______)    #    #  ####      (__________
        echo          _______)     #    #      #           (____)
        echo ---.__________)        #  #  #    #           (___)__.---
        echo                         ##    ####    
        timeout /t 3 > nul
        color 4
        echo #     #                                      
        echo ##    # # ###### #####  ###### #####  #        ##    ####  ###### 
        echo # #   # # #      #    # #      #    # #       #  #  #    # #      
        echo #  #  # # #####  #    # #####  #    # #      #    # #      #####  
        echo #   # # # #      #    # #      #####  #      ###### #  ### #      
        echo #    ## # #      #    # #      #   #  #      #    # #    # #      
        echo #     # # ###### #####  ###### #    # ###### #    #  ####  ###### 
        timeout /t 3 > nul
        set /a Niederlage+=1
    )
)

goto menu

我搜索了一下,但似乎没有人对与我类似的 ASCII 艺术有疑问。我发现的所有其他案例都与“|”的问题有关,但我没有使用这个符号。

windows batch-file ascii batch-processing ascii-art
1个回答
0
投票

将您的图片移至函数中,然后您可以重复使用它们,并且右括号是无害的。

...
if "%Userwahl%"=="%Scriptwahl%" (
    if "%Userwahl%"=="Schere" (
       call :show_schere_schere
       timeout /t 3 > nul  
   ) else if "%Userwahl%"=="Stein" (
        call :show_stein_stein
        timeout /t 3 > nul    
        ...

:show_schere_schere
echo      _______                                   _______
echo ---'   ____)____      #    #  ####       ____(____   '---
echo           ______)     #    # #          (______
echo        __________)    #    #  ####      (__________
echo       (____)          #    #      #           (____)
echo ---.__(___)            #  #  #    #           (___)__.---
echo                         ##    ####
exit /b

:show_stein_stein
echo     _______                           _______
echo ---'   ____)     #    #  ####        (____   '---
echo       (_____)    #    # #           (_____)
echo       (_____)    #    #  ####       (_____)
echo       (____)     #    #      #       (____)
echo ---.__(___)       #  #  #    #        (___)__.---
echo                    ##    ####         
exit /b
© www.soinside.com 2019 - 2024. All rights reserved.