Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
.NET 4.x

Составная команда CMD

15.11.2019, 00:38. Показов 5705. Ответов 30
Метки cmd (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подскажите, пожалуйста, каким образом можно реализовать составную (состоящий из нескольких запросов, ключей и прочее) команду для CMD? Т.е., есть несколько вводных для выполнения команды, к примеру:

ping 8.8.8.8 -a -t -r -s -j

где ping 8.8.8.8 - это значение из TextBox, а ключи -a -t -r -s -j - эти значения устанавливаются с помощью нескольких CheckBox, в зависимости от состояния CheckBox.

Начал с малого, я в этом мягко говоря не силён:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Shell("cmd.exe /k" + TextBox1.Text + CheckBox1.Text + CheckBox2.Text)
    End Sub
    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked = True Then
            CheckBox1.Text = " -a"
        Else
            CheckBox1.Text = ""
        End If
    End Sub
    Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
        If CheckBox2.Checked = True Then
            CheckBox2.Text = " -t"
        Else
            CheckBox2.Text = ""
        End If
    End Sub
End Class
когда CheckBox не отмечены, команда получается такой: не удалось обнаружить узел 8.8.8.8-a-t,
когда CheckBox отмечены (оба), вроде как работает
отмечены по одному - не работает.

Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2019, 00:38
Ответы с готовыми решениями:

Не работает команда cmd
В очень многих папках создавал файл perehod_v_tekuch_katalog_v_cmd.bat такого содержания: cmd НА всякий случай: три байта 0X63,...

Не работает команда cmd
Process.Start("cmd", "del m:\folder\test.txt"); Почему не работает данная команда? При прописывании в cmd вручную файл удаляется... ...

Команда копирования Xcopy (cmd):
Команда копирования Xcopy (cmd) 1) Скопируйте все файлы и подкаталоги, включая пустые и скрытые, расположенные в месте, путь к которому...

30
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
24.11.2019, 18:19  [ТС]
Студворк — интернет-сервис помощи студентам
Orlangur1991, ооо, а вот это уже оптимизация)) спасибо!
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
24.11.2019, 19:08
Цитата Сообщение от rebell Посмотреть сообщение
оптимизация))
Сильно сказано, скорее короткая запись. Так как данные сначала преобразуются в строковый массив, а затем элементы массива также в цикле объединяются с пробелом. Но вариант красивый, не поспоришь.
0
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
26.11.2019, 23:21  [ТС]
Orlangur1991, приветствую!
Подскажите, пожалуйста, а как CheckBox'у установить значение не через текст?
это что касается Вашего 2го сообщения.
Сейчас я использую костыльный вариант:
если на CheckBox установлена отметка (галка) то, Label или TextBox равен какому-то значению, и потом я использую их ( Label или TextBox) в команде.
Но так не красиво, приходится Label и TextBox скрывать на форме.

За ранее спасибо.
0
Лень — мое второе и
 Аватар для Orlangur
3231 / 2418 / 688
Регистрация: 28.11.2014
Сообщений: 3,603
Записей в блоге: 3
26.11.2019, 23:42
rebell, пишите что нужно в свойство .Tag
1
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
28.11.2019, 16:16  [ТС]
Orlangur1991, добрый день!
помогите, пожалуйста, разобраться.
Имеется:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Dim min = "--vvod-min="
    Dim max = " --vvod-max="
    Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
        If CheckBox4.Checked = True Then
            TextBox5.Text &= "-i "
            TextBox5.Text &= min & "" & TextBox3.Text
        Else
            TextBox5.Text = ""
        End If
    End Sub
    Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
        If CheckBox4.Checked = True Then
            TextBox5.Text &= max & "" & TextBox4.Text
        Else
            TextBox5.Text = ""
        End If
    End Sub
из двух TextBox пытаюсь отобразить информацию с некой доп. информацией в одном TextBox, т.е. в TextBox5
получаю: -i --vvod-min=5 --vvod-max=7
всё бы ничего, но, как только я ввожу более одного знака в TextBox3-4, то получаю такую хрень:
-i --vvod-min=1-i --vvod-min=10 --vvod-max=2 --vvod-max=25

не могу понять (в силу своей компетентности) из-за чего проблема(((

так же, когда очищаю TextBox3-4 от текста, то в TextBox5, прилетает:
-i --vvod-min=5 --vvod-max=7-i --vvod-min= --vvod-max=

думаю, что проблема с &=

За ранее большое спасибо.
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
28.11.2019, 18:08
Событие TextChanged происходит при любом изменении текста в TextBox-е, т.е. при вводе или удалении каждого символа.

может так должно быть?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Dim minCMD As String = "--vvod-min="
    Dim maxCMD As String = "--vvod-max="
    Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
        If CheckBox4.Checked = True Then
            TextBox5.Text = "-i " & minCMD & TextBox3.Text
        Else
            TextBox5.Text = ""
        End If
    End Sub
    Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
        If CheckBox4.Checked = True Then
            TextBox5.Text = maxCMD & TextBox4.Text
        Else
            TextBox5.Text = ""
        End If
    End Sub
как должен формироваться текст в TextBox5?
0
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
28.11.2019, 20:47  [ТС]
Uswer, согласно коду, который Вы прислали, TextBox5 заполняется по очереди, то min то max.
Цитата Сообщение от Uswer Посмотреть сообщение
как должен формироваться текст в TextBox5?
TextBox5 должен формироваться в строчку с двумя (т.е. тремя, значение -i должно быть всегда вначале) значениями, т.е. в конечном итоге я должен получить в TextBox5 -i --vvod-min=1-i --vvod-min=10, значение min и max меняются, но от этого в TextBox5 не идёт ни какого изменения за исключением значений.

Спасибо.

З.Ы. можно использовать какой-нибудь другой инструмент вместо TextBox5, если есть, главное чтобы была строчка.
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
29.11.2019, 09:02
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim minCMD As String = "-i --vvod-min="
Dim maxCMD As String = "-i --vvod-max="
Dim minVal, maxVal As Integer
 
Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
    If CheckBox4.Checked = True Then
         minVal = CInt(TextBox3.Text)
         TextBox5.Text = minCMD & minVal.ToString & maxCMD & MaxVal.ToString
    Else
         TextBox5.Text = ""
    End If
End Sub
Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
    If CheckBox4.Checked = True Then
        maxVal = CInt(TextBox4.Text)
        TextBox5.Text = minCMD & minVal.ToString & maxCMD & MaxVal.ToString
    Else
        TextBox5.Text = ""
    End If
End Sub
Добавлено через 3 минуты
А вообще правильней TextBox5.Text = "" размещать в процедуре изменения CheckBox4, там же блокировать TextBox3 и TextBox4, чтобы в них ничего нельзя было ввести при CheckBox4.Checked = False.
0
20 / 16 / 6
Регистрация: 17.01.2013
Сообщений: 247
29.11.2019, 09:38  [ТС]
Uswer, да, то что нужно, большое спасибо!

только вот когда делаю TextBox3 или TextBox4 чистым (для повторного ввода числа), вылетает такая ошибка: см. скрин.
Спасибо.
Миниатюры
Составная команда CMD  
0
Лень — мое второе и
 Аватар для Orlangur
3231 / 2418 / 688
Регистрация: 28.11.2014
Сообщений: 3,603
Записей в блоге: 3
29.11.2019, 10:03
rebell, проверяйте длину текста в textbox, прежде чем делать какие-то операции
1
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
29.11.2019, 10:35
rebell, замени TextBox3 и TextBox4 на NumericUpDown и тогда проверку вводимых данных не придётся делать.

Добавлено через 5 минут
Подобная ошибка возникнет при вводе в TextBox3 и TextBox4 не числового символа.
Например, эту конструкцию
VB.NET
1
2
minVal = CInt(TextBox3.Text)
TextBox5.Text = minCMD & minVal.ToString & maxCMD & MaxVal.ToString
можно заменить на эту
VB.NET
1
TextBox5.Text = minCMD & TextBox3.Text & maxCMD & TextBox4.Text
ошибок в программе не будет, но сама команда, при вводе не числового значения в TextBox3 или TextBox4, будет формироваться не верно. В моём примере CInt(TextBox3.Text) был добавлен умышленно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2019, 10:35

cmd команда на скан сети
Напомните команду, которая сканирует сеть и выводит АйПи - адреса всех сетевых устройств, которые подключены к сетке. "net view"-...

В консоли cmd не работает команда cd
Привет всем. Столкнулся с такой проблемой, в консоли cmd не работает команда cd. Пишу, например, cd E:\Dropbox, ошибки не выдает....

Не работает команда adb через cmd!
Есть список команд в скрипте которые замораживают приложения на телевизоре, потом размораживают соответственно! Из 52х приложений 46...

Не работает команда через cmd на Delphi
Здравствуйте. Не находит файл и не переименовывает через командную строку через приложение Delphi. Есть форма с кнопкой в ней...

Не работает команда в cmd, проверял на других машинах
команда Mem, не работает на моей машине, запускаю на остальных машинах, там где стоит Win7 - там всё идеально, но у меня, ни как. Гуглил -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru