gpt4 book ai didi

batch-file - 如何在 DOSBox 的子程序中创建变量?

转载 作者:行者123 更新时间:2023-12-01 12:05:33 24 4
gpt4 key购买 nike

我正在 DOSBox 中创建批处理多语言安装程序。

我想在子程序中创建一个变量,它根据用户的选择更改显示的语言。这是菜单的示例:

:installer
@echo off
echo SELECT LANGUAGE
echo [1] French
echo [2] Swedish
choice /c12
if errorlevel 2 goto instswedish
if errorlevel 1 goto instfrench

:instfrench
SET RETURN=okfrench
goto message
:okfrench
copy d:\french.com c:\
exit

:instswedish
SET RETURN=okswedish
goto message
:okswedish
copy d:\swedish.com c:\
exit

:message
echo I will install the software in %LANGUAGE%
choice /c:yn
if errorlevel 2 goto installer
goto %RETURN%

可能我需要在 :installer 部分设置变量,这样 %LANGUAGE% 就会显示所选的语言,但我不确定这是否正确我不知道该怎么做。你能帮帮我吗?

最佳答案

解决方案非常简单,因为只需将两行代码添加到批处理文件代码即可。

:installer
@echo off
echo SELECT LANGUAGE
echo [1] French
echo [2] Swedish
choice /c12
if errorlevel 2 goto instswedish
if errorlevel 1 goto instfrench

:instfrench
SET LANGUAGE=French
SET RETURN=okfrench
goto message
:okfrench
copy d:\french.com c:\
exit

:instswedish
SET LANGUAGE=Swedish
SET RETURN=okswedish
goto message
:okswedish
copy d:\swedish.com c:\
exit

:message
echo I will install the software in %LANGUAGE%
choice /c:yn
if errorlevel 2 goto installer
goto %RETURN%

插入的两行是:

  1. SET LANGUAGE=French:instfrench 行下方
  2. SET LANGUAGE=Swedish:instswedish 行下方

就是这样。

但代码可以进一步优化如下所示:

@echo off
:installer
echo Select language:
echo [1] French
echo [2] Swedish
choice /c:12
if errorlevel 1 set LANGUAGE=French
if errorlevel 2 set LANGUAGE=Swedish

echo I will install the software in %LANGUAGE%
choice /c:yn
if errorlevel 2 goto installer

copy d:\%LANGUAGE%.com c:\
exit

errorlevel的求值顺序第一选择在这里很重要。由于 if errorlevel number,必须首先评估最小数字,并且必须最后评估最大数字表示 IF errorlevel GREATER or EQUAL number。环境变量LANGUAGE在按 2 时定义了两次语言 Swedish , 首先是 French然后用 Swedish 重新定义.但是LANGUAGE仅由带有 French 的第一个 IF 条件定义在按下 1 时。

所选语言用于下一个用户提示,如果用户按下键 yY 也用于复制文件。

关于batch-file - 如何在 DOSBox 的子程序中创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com