Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 17:58   #1
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
Сообщение Delphi и командная строка

Доброго времени суток!
Задача такая: выполнить некоторые команды с помощью командной строки.
Использую ShellExecute
Код:
ShellExecute(Handle,'open','cmd',pchar(fpcpath+sourcepath+errpath+exepath),nil,1);
Вот сама команда:
'/c D:\FPSE\Bin\i386-win32\fpc.exe D:\FPSE\Projects\40.pas > D:\FPSE\Projects\40.err && D:\FPSE\Projects\40.exe && pause
Всё бы ничего, но есть одно но:
Если какой-нибудь путь содержит пробел то он не может выполнить команду. Решается вроде просто: пути надо написать в кавычках. В командной строке это работает, а вот в программе уже не работает.
Даже это не работает:
'/c "D:\FPSE\Bin\i386-win32\fpc.exe" "D:\FPSE\Projects\40.pas" > "D:\FPSE\Projects\40.err" && "D:\FPSE\Projects\40.exe" && pause
думаю виндовская багофича.
Что делать?
nusik вне форума Ответить с цитированием
Старый 19.04.2009, 18:03   #2
Juggernaut
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 55
По умолчанию

Попробуй так:
Код:
ShellExecute(Handle,'open','cmd',pchar
(fpcpath+' '+sourcepath+' '+errpath+' '+exepath),nil,1);
Весы слева, не забыли?

Абсурдопедия
Juggernaut вне форума Ответить с цитированием
Старый 19.04.2009, 18:06   #3
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

Спасибо за ответ.
Проверил, к сожалению не работает.
nusik вне форума Ответить с цитированием
Старый 19.04.2009, 21:18   #4
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

всё разобрался.
просто надо было еще общие внешние скобки добавить.
nusik вне форума Ответить с цитированием
Старый 20.04.2009, 02:48   #5
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

в таких случаях лучше всего преобразовать пути в старому "короткому" виду.. и все всегда будет работать без проблем..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 26.10.2010, 11:10   #6
Liones
Пользователь
 
Аватар для Liones
 
Регистрация: 26.11.2008
Сообщений: 81
По умолчанию

У меня похожая проблема
Код:
comstr:='"'+utilitpath+'gbak.exe"-b"'+datpath+'BD.gdb""'+arhivpath+'copy.gbk"';
ShellExecute(Handle,'open','cmd',pchar(comstr),nil,sw_show);
Нужно сделать копию базы Firebird. В командной строке прописывается:
"Путь к утилите" -b "путь к базе" "путь к бэкапу".
Руками из командной строки работает, а из проги не хочет.
Liones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Командная строка Vladya Помощь студентам 4 09.02.2009 18:29
Бегущая строка в заголовке приложения (Delphi 7) Sinx Помощь студентам 2 08.12.2008 02:35
Командная строка и РHP скрипт. ANTI PHP 1 23.08.2008 21:44
Командная строка Dj_smart Свободное общение 2 23.08.2008 20:12
командная строка Mails Помощь студентам 2 12.05.2008 18:29