Другие языки программирования и технологии

лаба по операционным системам

Необходимо реализовать печать справки по коммандам в отдельные файлы заданного формата <имя комманды>.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
Джавид Самедов
Джавид Самедов
51 500
Лучший ответ
ооо тебе повезло
используй 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 под виндой MFC надо что-то чужое скачивать типа
https://www.codeproject.com/articles/1940/xgetopt-a-unix-compatible-getopt-for-mfc-and-win32

и вообще, задание по командному файлу