Необходимо реализовать печать справки по коммандам в отдельные файлы заданного формата <имя комманды>.help,
которые должны располагаться в заданном каталоге cmd-help. Имя комманды передается в качестве параметра.
формат запуска скрипта:
<имя скрипта> <имя комманды>
предусмотреть сообщение пользователю на кириллице в случае ошибки ввода, скрипта и т. д.
Вариант 1
после каждого вызова открывать соответствующий файл в окне notepad
Вариант 2
не создавать файл справки повторно. например, если существует файл cmd-help\move.help, не создавать файл cmd-help\move.help, а отобразить в notepad
Другие языки программирования и технологии
лаба по операционным системам
set ss=%1
if not exist %ss%.hlp help %ss% /?>%ss%.hlp
if %errorlevel% call :cc
start notepad %ss%.hlp
exit
:cc
echo error command
del /q %ss%.hlp
exit
if not exist %ss%.hlp help %ss% /?>%ss%.hlp
if %errorlevel% call :cc
start notepad %ss%.hlp
exit
:cc
echo error command
del /q %ss%.hlp
exit
ооо тебе повезло
используй getopt
#include unistd.h
вот наглядный пример
if (argc < 2){
std::cout<<endl<<"ERROR: No arguments were specified, type -h for help";
exit(1);
}
int option;
char* filename = NULL;
char* strings = NULL;
int cflag = 0;
int sflag = 0;
int fflag = 0;
while ((option = getopt(argc, argv, "c:s:f:h")) != -1){
switch (option){
case 'c': {
if (cflag || fflag){
std::cout<<endl<<"ERROR: Wrong input, type -h for help";
exit(2);
} else {
cflag++;
sflag++;
}
std::cout<<"Char option"<<endl;
charFinder(optarg[0], filename);
break;
}
case 's' : {
if (sflag || fflag){
std::cout<<endl<<"ERROR: Wrong input, type -h for help";
exit(3);
} else {
cflag++;
sflag++;
}
std::cout<<"String option"<<endl;
strings = optarg;
stringFinder(strings, filename);
break;
}
case 'f':{
filename = optarg;
break;
}
case 'h':{
std::cout<<endl<<"Usage: -f -c | -s "<<endl;
std::cout<<"Output is provided in the file results.txt in index_space_lineIndex";
return 1;
}
case '?':{
if (optopt == 'f' || optopt == 'c' || optopt == 's'){
std::cout<<endl<<"ERROR: Arguments were not specified, type -h for help";
exit(6);
}
break;
}
default:{
std::cout<<endl<<"ERROR: Argument error, type -h for help";
exit(4);
}
}
}
используй getopt
#include unistd.h
вот наглядный пример
if (argc < 2){
std::cout<<endl<<"ERROR: No arguments were specified, type -h for help";
exit(1);
}
int option;
char* filename = NULL;
char* strings = NULL;
int cflag = 0;
int sflag = 0;
int fflag = 0;
while ((option = getopt(argc, argv, "c:s:f:h")) != -1){
switch (option){
case 'c': {
if (cflag || fflag){
std::cout<<endl<<"ERROR: Wrong input, type -h for help";
exit(2);
} else {
cflag++;
sflag++;
}
std::cout<<"Char option"<<endl;
charFinder(optarg[0], filename);
break;
}
case 's' : {
if (sflag || fflag){
std::cout<<endl<<"ERROR: Wrong input, type -h for help";
exit(3);
} else {
cflag++;
sflag++;
}
std::cout<<"String option"<<endl;
strings = optarg;
stringFinder(strings, filename);
break;
}
case 'f':{
filename = optarg;
break;
}
case 'h':{
std::cout<<endl<<"Usage: -f -c | -s "<<endl;
std::cout<<"Output is provided in the file results.txt in index_space_lineIndex";
return 1;
}
case '?':{
if (optopt == 'f' || optopt == 'c' || optopt == 's'){
std::cout<<endl<<"ERROR: Arguments were not specified, type -h for help";
exit(6);
}
break;
}
default:{
std::cout<<endl<<"ERROR: Argument error, type -h for help";
exit(4);
}
}
}
Похожие вопросы
- Я не могу понять как делали первые программы и операционные системы
- Где найти готовый исходник простенькой операционной системы, которая умеет только-загрузится, вывести сообщение на экран
- Можно ли загрузить операционную систему Windows XP на более чем один компьютер???
- Подскажите, как можно установить 64-х разрядную операционную систему?
- Как операционная система знает что программа выполнила недопустимую операцию?
- Что можно придумать для того чтобы начать и не бросить писать свою собственную операционную систему, со своими
- Какая Операционная система лучше всего?
- Для операционной системы Mac вирусы не страшны, что ли?
- операционные системы 32 бит 64 бит, разряды процессоров итд
- Операционная система
https://www.codeproject.com/articles/1940/xgetopt-a-unix-compatible-getopt-for-mfc-and-win32
и вообще, задание по командному файлу