希望提出问题并回答将输入到位置的批处理文件

时间:2015-10-29 16:37:08

标签: batch-file

我对此很新,但我想要做的是当你运行批处理文件时它会问你用户帐号是什么。与您输入用户帐户相比,它将带您进入该帐户位置。我觉得我很亲密,但不确定我错过了什么。

@ECHO OFF 
Title Enter Users Profile 
color 4f

cd C:\Users\ dir
Set /p  %User%= Account:
%User%== cd C:\Users\%user%\ 

2 个答案:

答案 0 :(得分:1)

我不确定你想要实现的黑客攻击是什么,但这里是代码:

@ECHO OFF
:enterUser
SET /p usr=enter user account:
IF EXIST C:\Users\%usr% (
    CD C:\Users\%usr%
) ELSE (
    ECHO User not found!
    ECHO Try again!
    GOTO enterUser
)
PAUSE

答案 1 :(得分:0)

Set /p  %User%= Account:

这是不正确的语法,因为%User已展开,但没有值,因此您最终尝试提示;

Set /p  = Account:

哪个没有设定任何东西。 只需使用;

set /p User= Account:

脚本中的最后一行是

%User%== cd C:\Users\%user%\

这让我觉得你忘了把if和相应的命令放在它之后。

在变量周围加上引号也是一种好习惯,如果有几个奇怪的符号,或者更常见的是空格混乱,这在大多数使用用户/文件/文件夹名称的命令中很容易发生。 / p>

正如我经常提到的,如果您打算让其他人使用此功能,请检查他们是否只是在set /p之后按下

 if not defined User (
  echo Error: Empty Input
  pause
  goto :top
)

MichealS的代码应该足够了,我只想解释一些奇怪的代码。