2017-09-04 118 views
2

我正在使用批处理创建迷你游戏,其中一个有用的工具创意是交互式记事本,以便用户可以存储整个游戏中的信息,并在稍后提及。到目前为止,我已经创建的选项转到一个在游戏中的暂停菜单中的记事本,但不知道是否有可能节省的结果,而输出到新的文件在桌面上是否可以在批处理脚本中创建交互式记事本以节省用户输入

:PauseMenu 
    cls 
    echo. 
    echo   %Alias% 
    echo. 
    echo Notepad 
    echo Stats 
    echo Untitled2 
    echo Untitled3 
    echo Untitled4 
    echo Untitled5 
    echo Untitled6 
    set/p PauseMenu="N, S" 
    IF ["%PauseMenu%"]==["N"] goto Notepad 
    IF ["%PauseMenu%"]==["S"] goto Stats 
    IF ["%PauseMenu%"]==["N"] goto 
    IF ["%PauseMenu%"]==["N"] goto 
    IF ["%PauseMenu%"]==["N"] goto 
    IF ["%PauseMenu%"]==["N"] goto 
    IF ["%PauseMenu%"]==["N"] goto 

任何帮助,将不胜感激, 谢谢。

PS是否可以从菜单返回上一页?

回答

1

简单本身。

首先,一些重命名可能是有序的。 notepad是一个提供的实用程序,并且pausemenu正被用作变量和标签。这不是无效的,但可能有点混乱。此外,如果您在一组键之间进行选择,我建议您调查choicechoice有许多优点,比如只接受一个字符,不需要enter,因此没有必要分析条目。

所以:修改代码:

:p_pausemenu 
pause 
:PauseMenu 
cls 
echo. 
echo   %Alias% 
echo. 
echo N Notepad 
echo S Stats 
echo 1 Untitled2 
echo Z Untitled3 
echo Q Untitled4 
echo J Untitled5 
echo X Untitled6 
:: Note that the processing of ERRORLEVEL must be in reverse order 
choice /c ns1zqjx 
if errorlevel 7 goto labelx 
if errorlevel 6 goto labelj 
if errorlevel 5 goto labelq 
if errorlevel 4 goto labelz 
if errorlevel 3 goto label1 
if errorlevel 2 goto stats 
if errorlevel 1 goto unotepad 


:unotepad 
start "Notes for %alias%" notepad "c:\gamedirectory\%alias%.txt" 
goto pausemenu 

:stats 
:: List your stats here 
echo Stats for %alias% 
goto p_pausemenu 

这里,与一些未实现的选项提出和choice命令(见choice /?从提示的更多选项)菜单等待要做出选择。

errorlevel根据所做的选择进行设置 - 但由于if errorlevel n表示if errorlevel is n OR GREATER THAN n您需要按相反顺序处理errorlevel

然后处理每个选择。 n将启动一个notepad实例并从游戏目录加载alias.txt文件,然后再次显示菜单,因为它返回到pausemenus将显示统计信息(idk你需要的),然后返回到p_pausemenu,这将暂停,然后,然后继续显示菜单,当用户发信号这样做。

+0

道歉需要一段时间才能找到你,我会检查它,看看它是否是我在寻找的东西。感谢您的回复。 –

相关问题