如何防止用户在我的代码中解释为命令时输入的密码?

Eva*_*ton 0 batch-file

我是编写批处理脚本的新手,我不断收到错误.基本上我编写的代码应该是创建帐户并将其提升为管理员状态的替代界面.到目前为止我写了:

@echo off
echo Account Name:
set /p name=
set nameacc = %name%
echo Account Password:
set /p password=
set passacc = %password%
net user /add "%name%" & "%password%"   
cls
echo Account %name%,password: %password% created
pause
echo Would you like to elevate to Admin privelages? Y/N
set /p choice=
if '%choice%' == 'Y' goto A 
if '%choice%' == 'N' goto B
:A 
echo Elevating your Account...
net localgroup administrators %nameacc /add
echo Account created... Have fun..
pause
=exit
:B
exit
Run Code Online (Sandbox Code Playgroud)

我遇到的一个问题是,如果输入的密码与控制台命令相同,则返回该命令的帮助屏幕.

Gar*_*ary 5

那是因为这&是一种在一行上运行两个单独命令的方法.

net user /add "%name%" & "%password%" 
Run Code Online (Sandbox Code Playgroud)

表示运行net user ...然后运行%password%扩展为的命令

我目前无法测试它,但我认为语法很简单

net user /add %name% %password%
Run Code Online (Sandbox Code Playgroud)

作为旁注,我会将您的管理员选择更改为

if /i '%choice:~0,1%' == 'Y' (goto A) else (goto B)
Run Code Online (Sandbox Code Playgroud)

你拥有它的方式,你更有可能错误地创建管理员帐户.