是否可以在批处理脚本中创建交互式记事本以节省用户输入
问题描述:
我正在使用批处理创建迷你游戏,其中一个有用的工具创意是交互式记事本,以便用户可以存储整个游戏中的信息,并在稍后提及。到目前为止,我已经创建的选项转到一个在游戏中的暂停菜单中的记事本,但不知道是否有可能节省的结果,而输出到新的文件在桌面上是否可以在批处理脚本中创建交互式记事本以节省用户输入
: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是否可以从菜单返回上一页?
答
简单本身。
首先,一些重命名可能是有序的。 notepad
是一个提供的实用程序,并且pausemenu
正被用作变量和标签。这不是无效的,但可能有点混乱。此外,如果您在一组键之间进行选择,我建议您调查choice
。 choice
有许多优点,比如只接受一个字符,不需要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
文件,然后再次显示菜单,因为它返回到pausemenu
。 s
将显示统计信息(idk你需要的),然后返回到p_pausemenu
,这将暂停,然后,然后继续显示菜单,当用户发信号这样做。
道歉需要一段时间才能找到你,我会检查它,看看它是否是我在寻找的东西。感谢您的回复。 –