Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740

Как батником задать значение переменной программе Visual C++

06.04.2014, 23:55. Показов 1323. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пишу в Bat код

consol.exe -peremenna 55 -pluss 100
Pause


Екзешник consol.exe принемает код Батника запускаеться
и выполняет подсчет

и выводит на екран 55+100=155


к примеру код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
string lang_russian (string a);
string lang_title (string b);
string colorConsol ();
 
int main () 
 
{
    system("cls");
    system("@ echo off");
    lang_russian ("");
    lang_title ("");
    colorConsol();
    
    
    cout<<"///////////////////////////////////Консоль////////////////////////////////////"<<endl;
    string str="";
 
    str=system("");
    //cin>>a;
 
    cout<<str<<endl;
    getchar();
 
    return 0;
}
 
string lang_russian (string a)
{
    a=setlocale(LC_ALL,"Russian");
    return a;
}
 
string colorConsol ()
{
    string a; 
    a=system("color 3f");
    return a;
}
 
string lang_title (string b)
{
    
    b=SetConsoleTitle(TEXT("777"));
    return b;
}
Мнеб хоть бы как нибудь заципиться как происходит

батником задать переменную EXE файлу С++
напишите ПОЖАЛУСТА
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2014, 23:55
Ответы с готовыми решениями:

Как переменной описанной в программе присвоить значение переменной в Conditional Compilation Arguments?
Kak mozhno peremennij opisanoj v programme prisvoit` znachenie peremennoj v Conditional Compilation Arguments??? Eto nado chtoto tipa...

Как задать значение сессию, чтобы значение было переменной из js?
Добрый день.как задать значение сессию,чтобы значение было переменной из js. Есть код success: function(html){ ...

как задать значение переменной ?
есть скрипт вида у=у+1 который срабатывает по редифункщэн онклик на img. как задать у ноль? если писать варом то всегда будет 1, где и как...

4
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
07.04.2014, 00:39
C++
1
int main (int argc, char* argv[])
Сделай такой заголовок. argc - количество параметров. argv[0] - путь к exe'шнику, все остальные argv[1], ... - это те, которые ты задашь в консоли. Это для терминала, хз как оно у тебя будет работать...
1
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
07.04.2014, 03:42  [ТС]
Спасибо шас пробую , напишу что получилось

Добавлено через 15 минут
папробывал хм интересно )))

прописываю батник
@ echo off
ru_1.exe argc 5
pause


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main (int argc, char* argv[])
 
{
 
int i=0;
argv[i]="ru_1.exe";
 
cout<<argc<<endl;
getchar();
 
return 0;
}
выводит мне 3
удевительно
может неправильно что то делаю
масив использую , как происходит ввод
откуда 3 , что оно подсчитывает и как
а если я строку задам - оно вывидет мне
дай пожалуста код примера
почитаю может там зацепка
и терменалы ввода есть статья почитать ))) может там не только кансоль используют
и другие методы ввода
в батнику что задать ?

Добавлено через 1 час 23 минуты
протестил трохи понял задаються подсчет

@ echo off
ru_1.exe argc 5 77 88 88
pause

оно додает ru_1.exe=1 , argc =2 , 5=3 , 77=4, 88=5, 88=6

и того 6
типо в батнику отдельные строки

Добавлено через 4 минуты
а если вывести строку
или задать через батник значение переменной
там
@ echo off
ru_1.exe -peremenna_a 109 -peremenna_b 122
pause

ответ 109+122= 131 выведет


@ echo off
ru_1.exe -str шла маша по шосе , и сосала
pause

ответ выведет шла маша по шосе , и сосала

Добавлено через 17 минут
вот что взбрело

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <Windows.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main (int argc, string* argv[])
 
{
 
string str[]={""};
string vas=str[argc];
 
cout<<vas<<endl;
 
getchar();
 
return 0;
}
Добавлено через 7 минут
это я думал если argc принимает подсчет строк в батнику
то он подобие getline
и я могу передать его str строке
и задав конткретное число в масиве
C++
1
2
3
4
5
6
7
8
string str[]={"fire","one","temp"};
 
string vas=str[1];  // 1 - єто вторая строка "one" , 0- єто первая "fire" , 2-єто "temp" , больше нету
 
cout<<vas<<endl; // выведе мне вторую "one" - потому что отсчет начинаеться с нуля             
                              //  как первая строка  "fire" 
                              // существует /0  єто нулевая строка, но єто другая история
getchar();
Добавлено через 4 минуты
думаю ответишь как правильно
0
 Аватар для TrueBit
100 / 100 / 47
Регистрация: 19.11.2012
Сообщений: 195
07.04.2014, 03:59
argc - число аргументов при запуске программы, если программа запущена без аргументов то считается что аргумент 1(само имя программы)
argv - массив указателей на аргументы(строки), всегда содержит argv[0] - имя программы, и далее по порядку

вывести список всех аргументов:
C++
1
2
3
4
5
6
7
#include <iostream> 
 
int main(int argc, char *argv[]) {
    for(int i=0; i<argc; i++)
        std::cout << argv[i] << std::endl;
    return 0;
}
по задаче, нужно сделать что-то на подобии анализатора аргументов, чтобы брать значения после ключей
вот небольшой пример(без ключей):

main.cpp:
C++
1
2
3
4
5
6
7
8
#include <iostream> 
 
int main(int argc, char *argv[]) {
    if(argc<3)
        return 1;
    std::cout << atoi(argv[1]) + atoi(argv[2]) << std::endl;
    return 0;
}
start.bat:
Bash
1
2
3
@echo off
main.exe 55 100
pause
вывод:
Bash
1
155
0
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
14.04.2014, 00:24  [ТС]
Очень вам спасибо - как раз создал - то что хотел
но ожедаймый результат все таки не получил хорошо (копирывание, и удаления файла, ну и по свичу , напичкать навыками екзешник)
да я могу копирывать файл
вот таким батником call.bat

этот код батника для копирывания (с) , хотя скажу я вам , столкнулся с проблемой строк в С++
он switch не любит строки, ну спасибо за хоть за char,
да знаю про enum гуглил , но ни фига не удалось его применить , надеюсь
скинете код применения его в моей задаче

@ echo off
con_1.exe c f:\вечный_двигатель_есть_это_жизнь.jpg f:\вечный_двигатель_есть_это_жизнь.jpg
pause

этот код батника, как раз использован в удалении (d)
@ echo off
con_1.exe d f:\по_закону_сохранения_нас_и_не_было_бы .jpg
pause

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <conio.h>
#include <cstring>
#include <string>
#include <io.h>
#include <fstream>
#include <stdio.h>
#include <algorithm>
#include <Windows.h>
#include <cstdio>
 
using namespace std;
 
 
//string copy ();
string copy_file (string a, string b); // copy file
string copy_del (string fname); // copy del
 
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"UKR");
system("color 3f");
SetConsoleTitle(TEXT("Прототип cmd.exe"));
 
////////////////////////////////////
cout<<"                                    Команди"<<endl;
cout<<endl<<"Копіювання файлу bat: con_1.exe c шляхфайлу новийшляхфайлу"<<endl;
cout<<"Видалення файлу bat: con_1.exe d шляхфайлу "<<endl<<endl;
_getch();
////////////////////////////////////
    
if(argc<3)
return 1;
 
char* command;
command=(argv[1]);
 
string a="",b="";
//char *d;
 
 
 
 
ifstream infile(b, ios::app); // шлях до нового файлу
ifstream infile2(a, ios::binary); // шлях до нового файлу
//ifstream infile2(d, ios::binary); // шлях до нового файлу
 
//replace(a.begin(), a.end(), '\\', '\'); // замена в строке begin начало end конец 
//replace(a.begin(), a.end(), '//', '///'); // много функциональность замены
//replace(b.begin(), b.end(), '\\', '\');
//a.replace(0, 4, a);
 
switch (*command)
{
case 'c':
    a=(argv[2]);
    b=(argv[3]);
    
    //cout<<command<<" 0"<<endl;
    cout<<"Копіювання файлу : "<<a<<endl;
    cout<<"Копіювання в : "<<b<<endl<<endl;
    copy_file (a, b);
    if (infile!=NULL)
    {
    cout<<"Файл Скопійований в : "<<b<<endl;
    }
    getchar();
    break;
 
case 'd':
    //a=(argv[2]);
    a=(argv[2]);
    //cout<<command<<" 0"<<endl;
    cout<<"Видалення файлу: "<<a<<endl;
    copy_del (a);
    if (infile2==NULL)
    {
    cout<<"Файл видалений : "<<a<<endl;
    }
    else
    {
    cout<<"Файл не можем видалити : "<<a<<endl;
    }
    getchar();
    break;
 
default :
    cout<<"Не вірна команда"<<endl;
    getchar();
    break;
}
 return 0;  
}
 
////////////////copy_file////////////////
string copy_file (string a, string b)
{
char * buffer;
buffer = new char;
ifstream infile(a, ios::binary);
ofstream outfile(b, ios::binary);
    
infile.read(buffer, sizeof(char));
while (!infile.eof())
 
{
    outfile.write(buffer, sizeof(char));
    infile.read(buffer, sizeof(char));
}
 
 delete buffer;
 return buffer;
}
////////////////copy_file////////////////
 
 
 
 
 
////////////////copy_del////////////////
string copy_del (string fname)
{
    
    
    LPCWSTR a;
    a = (LPCWSTR)fname.c_str();
    DeleteFile(a);
    //LPCWSTR a;
    //a = (LPCWSTR)fname.c_str();
    //remove(fname);
    return fname;
}
////////////////copy_del////////////////
так вот при удаление, файл не удаляеться
да и пишет что нету его
толи проблема в этой строчки кода

C++
1
if(infile2==NULL)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2014, 00:24
Помогаю со студенческими работами здесь

Как задать переменной значение запроса
Почему то вместо значения переменной (наименование) переменной присваивается вся так строка что в кавычках. (SELECT...

Как переменной задать только положительное значение
Как переменной задать только положительное значение? Добавлено через 9 минут Если ставить переменную &gt; 0, то не работает

Как задать значение переменной, полученной из php?
Получаю данные из пхп через пост, как задать переменной значение полученного числа?

Как задать переменной перечисления другое значение
Допустим, есть перечисление enum MyEnum { FirstEnumValue = 0, SecondEnumValue = 1 } Есть переменная типа MyEnum. Нужно...

Как задать значение по умолчанию для переменной DateTime?
public DateTime date { get; set; } this.date = &quot;&quot;;//что написать по умолчанию &quot;&quot;,0 ничего не работает Добавлено через 3...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru