| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Не выполняется команда из командной строки |
| Автор: Cyri 28.2.2005, 12:08 |
| Люди, подскажите. Не выполняется команда WinExec(PChar('grep.exe>f.txt'),SW_SHOWNORMAL). Никаких ошибок или чего-то ещё, но файл не создаётся и всё. Самое интересное, что если просто grep.exe (или любая досовская команда) то всё хорошо. Я пршёл к выводу, что делфи не устраивает символ '>'. Пробовал даже его код вводить (chr(62)), но ничего не выходит. Кстати и команда ShellExecute(Handle,nil,PChar('grep.exe>f.txt'),nil,nil,SW_SHOW) тоже не работает. Причём пробовал разную командную строку, но символ '>' всегда всё портит. Какой выход? Кирилл |
| Автор: Александра 28.2.2005, 12:26 | ||
| Cyri делай так:
|
| Автор: Snowy 28.2.2005, 12:52 |
| формат file.exe>file.txt Это указание интерпретатору коммандной строки перенаправлять стандартный вывод в файл. Для этого коммандный интерпретатор должен выполняться. Сам file.exe этого не сделает, если только у него это не заложено. Причем имя интерпретатора нужно брать из переменной окружения %COMSPEC%, поскольку он различен для разных версий Windows. (command.com и cmd.exe). В остальном все верно - ключ /C одинаков для обоих. |
| Автор: Cyri 28.2.2005, 14:51 |
| Всё! У меня получилось. Всем спасибо. Прежде чем закрыть тему, объясните здесь же в двух словах смысл ключа /С. Кирилл |
| Автор: Александра 28.2.2005, 14:53 |
| Cyri ключ /C заставляет выполнить переданную команду и закрыть окошко, замени на /K и у тебя окно останется |
| Автор: Vit 28.2.2005, 18:02 |
| Хорошо бы ещё версию винды проверять, если 95, 98, ME то надо не cmd а Command вызывать... |
| Автор: Alex 28.2.2005, 18:30 | ||||
Или вызвать:
|
| Автор: Romtek 28.2.2005, 22:39 | ||
Я бы попытался так:
Дело в том, что в 3-м параметре надо указывать имя запускаемого файла, а параметры - отдельно, в 4-м. |