【问题标题】:Command Prompt making a Username and Password制作用户名和密码的命令提示符
【发布时间】:2013-03-08 05:29:13
【问题描述】:

我已经尝试过了,但它一直返回错误消息the syntax of the command is incorrect。这是我尝试过的代码:

@echo off
echo Enter Username and Password to view files

set /p user=Enter UserId:
set /p pass=Enter Password:

if /i %user%==admin (if /i %pass%==*my password was here*)

(goto admin1)

:admin1
..etc..

【问题讨论】:

    标签: command-line batch-file syntax-error command-prompt


    【解决方案1】:

    您的代码的问题是您使用了括号。这是相同代码的重做版本。

    @echo off
    echo Enter Username and Password to view files
    
    set /p user=Enter UserID: 
    set /p pass=Enter Password: 
    
    if /i %user%==admin (
        if /i %pass%==password goto admin1
    )
    
    :admin1
    ::More here...
    

    此外,此代码(以及您的代码,如果有效的话)有一个问题。无论您输入什么用户名或密码,它总是会转到:admin1。这是因为批处理文件是从上到下读取的,所以会跳过if块内的代码,转到:admin1块。

    您可以通过在将重定向用户的代码之间添加代码来解决此问题。

    另外,我建议您查看formatting help 以正确格式化您的问题(将代码放入代码块、链接等)。

    【讨论】:

    • 请注意,如果没有括号,它也可以正常工作(例如if /i %user%==admin if /i %pass%==password goto admin1,尽管它会使您的脚本变得混乱且难以阅读。
    • 谢谢,我知道代码是如何读取的,我没有把整个内容放在这里,但我确实有一个“以防万一你错了”部分。我试试这个,哦,我以前从未使用过这个网站,实际上我什至不认为我会得到答案,但下次格式会更好。
    • 我认为括号给出了一些分隔,不管它们是否需要它们整洁。我喜欢能够回去阅读我编写的代码并结合其他人能够做同样的事情,但感谢泡菜教授! :)
    【解决方案2】:

    您的括号已关闭。

    @echo off
    echo Enter Username and Password to view files
    
    set /p user=Enter UserId:
    set /p pass=Enter Password:
    
    if /i "%user%"=="admin" (if /i "%pass%"=="password" goto admin1)
    
    goto skip
    
    :admin1
    echo Done
    goto END
    
    :skip
    
    :END
    

    【讨论】:

    • 哦,这不是我的全部代码,有一些跳过,如果您输入错误的内容,它也会向您发送“您输入的信息不正确”,然后退出我的部分代码。但是在我输入用户名和密码后,它说语法错误它不会继续
    猜你喜欢
    • 2012-11-08
    • 2015-05-22
    • 2020-09-08
    • 2018-11-15
    • 2016-10-17
    • 2017-04-12
    • 1970-01-01
    • 2015-06-28
    • 2016-02-20
    相关资源
    最近更新 更多