这个批处理脚本有什么问题吗?

发布于 2025-01-10 16:57:51 字数 418 浏览 0 评论 0原文

@echo off
:a
title DISCORD.PY BOT RUNNER
cls
color 0a
python bot.py

if errorlevel == 1 (
    color 4
    echo.
    echo ERROR
    echo.
    echo [1] CLOSE : [2] RESTART

    set /p error = ""

    if %error% == 1 exit
    if %error% == 2 goto a
)

echo BOT IS CLOSED
echo.
echo [1] CLOSE

set /p closed = ""

if %closed% == 1 exit

谁能告诉我这个脚本有什么问题吗? 我看没有什么问题。 BC 我想制作一个discord.py 机器人启动器。

@echo off
:a
title DISCORD.PY BOT RUNNER
cls
color 0a
python bot.py

if errorlevel == 1 (
    color 4
    echo.
    echo ERROR
    echo.
    echo [1] CLOSE : [2] RESTART

    set /p error = ""

    if %error% == 1 exit
    if %error% == 2 goto a
)

echo BOT IS CLOSED
echo.
echo [1] CLOSE

set /p closed = ""

if %closed% == 1 exit

Can anyone say me whats wrong with this script?
I see there are nothing wrong.
Bc i want to make an discord.py bot starter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事↓在人 2025-01-17 16:57:51

errorlevel == 1 - 字符串errorlevel永远不会与字符串1相同。您需要 errorlevel,即 %errorlevel%

由于您在括号内的语句序列(即)内设置error的值,因此批处理将评估整个 语句从 if 到右括号,并用解析语句时该变量的值替换每个 %variable% ,即执行之前。您正在更改块内的 error 值,因此您需要提取其运行时值进行测试,因此需要调用 delayedexpansion。请参阅 https://stackoverflow.com/a/30284028/2128947

另:set /p 变量 =< /code> 将建立一个名为variableSpace 的变量,而不是variable。 = 之前的空格 很重要。

errorlevel == 1 - the string errorlevel will never be the same as the string 1. You need the value of errorlevel, that is %errorlevel%.

Since you are setting the value of error within a parenthesised sequence of statements (ie. a block) then batch will evaluate the entire statement from the if to the closing parenthesis, and substitute for each %variable% with the valu of that variable at the time the statement was parsed, that is, before it is executed. You are changing the value of error within the block, so you need to extract its run-time value for testing and thus you need to invoke delayedexpansion. Please see https://stackoverflow.com/a/30284028/2128947

ALSO : set /p variable = will establish a variable named variableSpace not variable. The space before the = is significant.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文