问题描述
在这里使用批处理脚本。 我想要做的是使用在 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 (将#修改为@)