在批处理文件中使用用户输入 if 语句来确认输入并让它保存一个持久变量

问题描述

在这里使用批处理脚本。 我想要做的是使用在 if 语句 (device_name) 中输入的变量,并让它将返回值保存在文件中,以便它仅在第一次加载时运行。我可以使用 :InitFirstRun ,因为如果我不使用用户输入,代码会覆盖该行。

我想要发生的事情: 第一次运行批处理时,它会提示用户输入他们的 ID,然后它会保存为一个持久变量 device_name,因为在我想通过响应确认输入后他们将无法更改它。

当前问题在于它不会在 if 语句中更新 device_name - 当在 if 语句中调用 echo Is device_name 时,它​​返回“First”。 如果我在 if 语句之后调用 device_name,它将返回输入的值。

我想知道我怎么能做到这一点。我完全被难住了,所以我愿意接受关于这方面所有方面的任何和所有建议。

我从这里得到了坦率的持久变量: How do I have a persistent variable in batch?

单独的“pref”文件是不可行的,因为它需要独立包含在一个文件中。

call :InitFirstRun
if %device_name%==First (
    echo This is the first time you are launching this app.
    echo.
    echo Enter your ID below.
    set /p device_name="Enter ID: "
    echo.
    echo Is %device_name% correct?
    set /p response=Enter y or n: 
    if /I %response%==y (
        echo Your device has been saved as %device_name%
        echo %device_name% >> "%~F0"
    )

    if /I %response%==n (
        need to find a way to loop back to set /p "device_name=Enter ID"
        or I just quit the app with no saving and they have to load again?
    )

) else (
    echo Your station and Device are set as: %device_name%
)
:InitFirstRun
set device_name=First

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...