.NET 2.x Корректный запуск BAT-файла - C#

Узнай цену своей работы

Формулировка задачи:

С# , BAT , CMD Интересная ошибка Столкнулся с ошибкой например создали bat файл
@ echo off
programma 
pause
Дальше класс в проекте на проверку
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
 
namespace path_link_files
{
    class Null_pr
    {
        public string str_tonull_str(string s)
        {
            string str=String.Empty;
 
            try
            {
                if (s!=String.Empty)
                {
                    str = s;
                }
                else
                {
                    MessageBox.Show("Пустое значение: " + s, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
 
                MessageBox.Show(ex.Message, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error); ;
            }
 
            return str;
        }
    }
}
И код программы
using System;
using System.Collections.Generic;
using System.Text;
 
namespace programma
{
    class Program
    {
        static Null_pr nul=new Null_pr();
        static void Main(string[] args)
        {
            string com=String.Empty;
            int n = 0;
            color("programma (v 1.0)");
 
            com = nul.str_tonull_str(args[0]);
 
            Console.WriteLine(com);
 
        }
 
        static void color(string tit)
        {
            Console.Title = tit;
            Console.BackgroundColor=ConsoleColor.DarkCyan;
            Console.Clear();
            Console.ForegroundColor=ConsoleColor.White;
        }
 
    }
}
Как заметили когда в батнику прописано так programma Привет Карапулька а в проге код args[0] получить команду то выводит Привет Карапулька Но если стереть в батнику: Привет Карапулька и оставить просто programma
@ echo off
programma 
pause
То код в проге args[0] , каким то чудом проходит все проверки в классе Null_pr и выводит завершить прогу с ошибкой (Прекращена робота programma ) - закрыть программу при этом не написав - не вывев сообщения что прописаны в классе наверное я еще не знаю , скажите что добавить ? Чтоб это проверялось если args[0] пуст и нету текста то оно вывело ошибку что прописано в классе- а не завершало сеанс пограммы ?
Кажется я догадываюсь , секрет в цикле как бы так )))
 for (int i = 0; i < args.Length; i++)
            {
               Console.WriteLine(args[i]); 
            }

Решение задачи: «.NET 2.x Корректный запуск BAT-файла»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
 
namespace path_link_files
{
    class Null_pr
    {
        public string str_tonull_str(int i,string[] s)
        {
            string str=String.Empty;
 
            try
            {
                if (0<s.Length)
                {
                    if (s[i] != String.Empty)
                    {
 
                        str = s[i];
                    }
                    else
                    {
                        MessageBox.Show("Пустое значение: " + s, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Пустое значение: \nИндекс получения данных cmd: "+i+"\nКоличество индексов: "+s.Length, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
 
                MessageBox.Show(ex.Message, "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error); ;
            }
 
            return str;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3 из 5
Похожие ответы