Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GENDALF_ISTARI
-2 / 11 / 3
Регистрация: 20.08.2013
Сообщений: 673
#1

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

06.04.2014, 23:55. Просмотров 436. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 23:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как батником задать значение переменной программе Visual C++ (C++):

Как задать паузу в программе в VC++ ? - C++
Кто подскажет, как задать паузу в программе в VC++? Есть ли такая команда типа WAIT, PAUSE, DELAY или что-то ёще? Штото всё перерыл и...

Как задать параметры переменной? - C++
Можно ли в начале кода задать параметр переменной int, которая внедряется в массив и не выходит из диапазона, например, от 0 до 20 , что...

Как задать программе игнорирование заглавных букв - C++
Создаю поисковик в С++. Но, есть проблема, пользователь вводит значение, и, если в значении есть разница в заглавных буквах (к примеру: В...

Как задать команду ping [IP] в Visual Studio 2010? - C++
Помогите! Как задать команду ping в Visual Studio 2010 с++? мне нужно что бы я сам вводил IP. #include&lt;iostream&gt; using...

есть график, проверьте правильно ли программа? и подскажите как задать в программе интервал? - C++
вот есть график, проверьте правильно ли программа? и подскажите как задать в программе интервал? График: И что бы он был вот...

Как в Visual Studio задать имя файла при запуске Release через Ctrl + F5? - C++
Я переименовал выходной файл в режиме Release в свойствах Linker-&gt;General-&gt;Output, но при попытки из студии как обычно запустить...

4
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
07.04.2014, 00:39 #2
C++
1
int main (int argc, char* argv[])
Сделай такой заголовок. argc - количество параметров. argv[0] - путь к exe'шнику, все остальные argv[1], ... - это те, которые ты задашь в консоли. Это для терминала, хз как оно у тебя будет работать...
1
GENDALF_ISTARI
-2 / 11 / 3
Регистрация: 20.08.2013
Сообщений: 673
07.04.2014, 03:42  [ТС] #3
Спасибо шас пробую , напишу что получилось

Добавлено через 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
96 / 96 / 12
Регистрация: 19.11.2012
Сообщений: 195
07.04.2014, 03:59 #4
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
-2 / 11 / 3
Регистрация: 20.08.2013
Сообщений: 673
14.04.2014, 00:24  [ТС] #5
Очень вам спасибо - как раз создал - то что хотел
но ожедаймый результат все таки не получил хорошо (копирывание, и удаления файла, ну и по свичу , напичкать навыками екзешник)
да я могу копирывать файл
вот таким батником 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
14.04.2014, 00:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 00:24
Привет! Вот еще темы с ответами:

Как в if задать значение -inf - C++
Мне нужно найти в массиве все отрицательные элементы, но у меня при х=0 функция не определена, но почему то компилятор считает что это...

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С - C++
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента массива переменной М1, номер строки, где...

как задать значение статическому элементу класса - C++
В классе есть статический Private элемент, мне нужно создать статическую функцию которая будет перезаписывать значение этого элемента. Вот...

Как задать каждому элементу массива значение по умолчанию? - C++
Например я знаю что void max(int t=9){//значение по умолчанию переменой t++; } А как такую штуку сделать для каждого елемента...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru