Задать вопрос
@Foxik1

Что не так с кодом?

(Я новичок, сори если вопрос тупой)
Делаю свою консоль и появилась проблема с командой cd
Пишу cd d:\Папка
Он отвечает d:\Папка>
Он перешёл в нужную директорию, но стоит написать просто cd (Показать текущую директорию) дак он отвечает
D:\RiderProjects\******\*****\bin\Debug\net6.0
То-есть он не перешёл, почему?
А если написать много раз cd то будет переходить во все директории подряд
Код
using System.Diagnostics;
var code = 0;
while (code == 0)
{
    Console.Write(Directory.GetCurrentDirectory() + ">");
    code = cmd(Console.ReadLine());
}

int cmd(string command)
{
    if (command.Length != 0 && command[0] == Convert.ToChar("c") && command[1] == Convert.ToChar("d"))
    {
        if (command.Length > 3 && command[2] == Convert.ToChar(" "))
        {
            var path = command.Substring(3);
            try
            {
                Process.Start("cmd", "/k cd /d " + path);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
        else if (command.Length > 2 && command[2] != Convert.ToChar(" "))
        {
            Console.WriteLine("\"" + command +
                              "\" не является внутренней или внешней\nкомандой, исполняемой программой или пакетным файлом.\n");
        }
        else if (command == "cd")
        {
            Console.WriteLine(Directory.GetCurrentDirectory() + "\n");
        }
    }
    else if (command == "exit")
    {
        return 1;
    }
    else if (command == "")
    {
        return 0;
    }
    else
    {
        Process.Start("cmd", "/k " + command);
    }
    return 0;
}
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы