командная строка криво выполняется (или руки такие))

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

командная строка криво выполняется (или руки такие))

Сообщение Владимир » 30.03.2015 19:24:22

Всем доброго! Поставил 7-zip. Задача - сделать zip-архив aaaa.zip файлов и директорий в директории C:\mysoft\proga\. Пишу в cmd
Код: Выделить всё
C:\Program Files\7-zip\7z.exe a -tZip "C:\aaaa.zip" -r "C:\mysoft\proga\*.*"

Все Ок, в архиве именно файлы и каталоги из C:\mysoft\proga\.
Делаю то же из софта через TProcess:
Код: Выделить всё
.....
AProcess.CommandLine:='C:\Program Files\7-zip\7z.exe a -tZip "C:\aaaa.zip" -r "C:\mysoft\proga\*.*"';
AProcess.Optoins:=AProcess.Options+[poWaitOnExit];
AProcess.Execute;
.....

Получаю архив, включающий не нужную мне директорию \proga !
p.s. ShellExecute дает тот же результат.
Чего присоветуете?
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: командная строка криво выполняется (или руки такие))

Сообщение Padre_Mortius » 30.03.2015 21:55:13

у меня Ваш код отработал без ошибок. Lazarus 1.4RC2 Win10
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: командная строка криво выполняется (или руки такие))

Сообщение Владимир » 30.03.2015 22:15:51

Padre_Mortius писал(а):у меня Ваш код отработал без ошибок. Lazarus 1.4RC2 Win10

Спасибо, но как-то не полегчало. Вы использовали Shell или TProcess? И куда копать?
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: командная строка криво выполняется (или руки такие))

Сообщение Vapaamies » 30.03.2015 23:12:19

Поскольку путь к 7z.exe с пробелом, его тоже нужно заключить в кавычки.
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: командная строка криво выполняется (или руки такие))

Сообщение Владимир » 31.03.2015 09:09:06

Vapaamies писал(а):Поскольку путь к 7z.exe с пробелом, его тоже нужно заключить в кавычки.

Спасибо, попробовал - результат тот же...

Добавлено спустя 57 минут 42 секунды:
Re: командная строка криво выполняется (или руки такие) [РЕШЕНО]
Владимир писал(а):у меня Ваш код отработал без ошибок. Lazarus 1.4RC2 Win10

Я балда! Полагаю, что 7-Zip корректно работает, если расширение получаемого архива соответствует ключу -t, я же попытался получить архив с отличным от .zip расширением.
Это работает:
Код: Выделить всё
AProcess.CommandLine:='C:\Program Files\7-zip\7z.exe a -tZip "C:\aaaa.zip" -r "C:\mysoft\proga\*.*"';

А это - чудит:
Код: Выделить всё
AProcess.CommandLine:='C:\Program Files\7-zip\7z.exe a -tZip "C:\aaaa.odt" -r "C:\mysoft\proga\*.*"';
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru