我正在尝试用C#创建一个伪shell程序,但是我需要知道如何显示两个不同的消息,具体取决于用户是否在其“命令”前面放置'cd'。
以下是我的代码的一部分:
/* C:\Users dir */
users:
Console.Write("C://Users>");
string userValueFromUsers;
userValueFromUsers = Console.ReadLine();
if (userValueFromUsers.Equals("exit"))
{
goto end;
}
else if (userValueFromUsers.Equals(""))
{
goto users;
}
else if (userValueFromUsers.Equals("cd.."))
{
goto users;
}
else if (userValueFromUsers.Equals("cd " + random text));
{
Console.WriteLine("The system cannot find the path specified.");
}
else if (userValueFromUsers.Equals("cd.."))
{
goto c;
}
else
Console.WriteLine("'" + userValueFromUsers + "' is not recognised as an internal or external command,"); Console.WriteLine("operable program or batch file.\n")
goto users;
我的问题是在行中写着“if(userValueFromUsers.Equals(”cd“+ random text”));“,'随机文本'是我当前占位符'用户说的任何内容。'
澄清,c,开始,结束和用户都只是我的代码的一部分,c是C:\目录,开始是你退出的开始和结束。
提前致谢!
答案 0 :(得分:0)
我不确定你在问什么,但你的代码似乎有一些逻辑错误。也许他们已经成为你问题的一部分?试试吧。它现在有效吗?
另外,你为“cd ..”测试了两次。第二次测试从未执行过。我从源代码中删除了它。
/* C:\Users dir */
users:
Console.Write("C://Users>");
string userValueFromUsers;
userValueFromUsers = Console.ReadLine();
if (userValue.Equals("exit"))
{
goto end;
}
else if (userValueFromUsers.Equals(""))
{
goto users;
}
else if (userValueFromUsers.Equals("cd.."))
{
goto users;
}
else if (userValueFromUsers.Equals("cd " + "random text"))
{
Console.WriteLine("The system cannot find the path specified.");
}
else
{
Console.WriteLine("'" + userValueFromUsers + "' is not recognised as an internal or external command,");
Console.WriteLine("operable program or batch file.\n");
goto users;
}