Консультация № 123138
14.02.2008, 16:43
0.00 руб.
0 5 5
Уважаемые эксперты, из своей программы на C++ я должен
выполнить команду: WinExec("1.Bat",SW_SHOWNA);

1.Bat писал не я - в нем всего одна строка:

start Explorer.exe %1

Объясните, пожалуйста, что такое %1 и, если можно,
дайте ссылку где почитать про создание BAT-файлов.

Обсуждение

Неизвестный
14.02.2008, 17:27
общий
это ответ
Здравствуйте, George22!
На этой место будет поставлено имя файла, передаваемого как параметр при вызове BAT-файла. Если в пути к файлу могут встретиться пробелы, то следует ставить %1 в кавычки ("%1").
%2 - означает второй параметр и т.д.
Почитать можно, например, здесь <a herf=http://detc.usu.ru/Assets/aCOMP0041/lectures/bat-files/index.html>Командные файлы DOS</a>
Неизвестный
14.02.2008, 18:07
общий
это ответ
Здравствуйте, George22!

%1 - первый передаваемый батнику параметр
ps проще использовать API ShellExecute(NULL, "open", "explorer.exe", "--параметр--" ,NULL, SW_SHOWNA); параметр лучше передать программе (см. прилож.)


Приложение:
/*HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);*/#include <windows.h>#include <shellapi.h>int main(int argc, char *arg[]){ShellExecute(NULL, "open", "explorer.exe", arg[1], NULL, SW_SHOWNA);return 0;}
Неизвестный
14.02.2008, 21:33
общий
это ответ
Здравствуйте, George22!
Про BAT-файлы можно прочесть <a href=http://detc.usu.ru/Assets/aCOMP0041/lectures/bat-files/DOS.html>здесь</a> или <a href=http://www.rf.unn.ru/rus/students/edu/os/dos/msdos/>здесь</a>.
Или можете сделать следующее: Пуск -> Выполнить -> cmd.exe.
В открывшемся окошке наберите команду help.
Вам будет выдан список команд (насколько мне известно, это не полный перечень). Справку по конкретной команде вы можете получить так: <название команды> help. Треугольные скобки набирать не нужно.
Возможно, вам понадобится команда pause для временной остановки выполнения программы (если эту команду в bat-файл не ввести, то он выполнится и тут же закроется).
Удачи!
Неизвестный
14.02.2008, 22:00
общий
это ответ
Здравствуйте, George22!
вот нескольнко полезных ресурсов
http://www.windowsfaq.ru/content/category/3/7/45/
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=20
Неизвестный
15.02.2008, 05:52
общий
это ответ
Здравствуйте, George22!

%1, %2 и так далее - параметры, которые можно указать в коммандной строке при запуске бат-файла.

Если Explorer запускается с параметром, то это путь, который надо открыть в проводнике.
Поэтому тут логичнее было бы написать что-то типа:
WinExec("1.Bat C:\Temp", SW_SHOWNA);
Ну или в том же духе. А можно передавать параметр, который пришёл из коммандной строки в функцию main, например.
Форма ответа