Передача параметров программе из командной строки
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Передача параметров программе из командной строки - 2008-05-21 16:23:27.546666
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
Доброго дня уже долго мучает такой вопрос. как из командной строки передать параметром путь к файлу, но при этом в пути есть пробелы например proga.exe c:\program files\111\… в пути есть пробел и программа сразу выдает ошибку, что файл "c:\program" не найден.
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 16:51:22.070000
|
|
|
Mkey
Сообщений: 3426
Оценки: 0
Присоединился: 2006-03-08 14:32:13
|
в кавычки не пытался заключать? proga.exe "c:\program files\111\…"
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 16:57:14.986666
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
пытался, пишет тоже самое, только в начале еще кавычку добавляет
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:01:57.090000
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
Попробуй неполные DOS-имена (ну или как они там называются), т.е. указываешь первые 6 символов названия, а потом ~1
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:07:42.866666
|
|
|
Mkey
Сообщений: 3426
Оценки: 0
Присоединился: 2006-03-08 14:32:13
|
"C:\Program Files\WinRAR\Rar.exe" a "C:\Program Files\WinRAR\111.rar" "C:\Program Files\WinRAR\WinRAR.exe" и с кавычками все работает отлично….
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:15:03.490000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
По-моему, тут такая заморочка: windows, в отличие от *nix, передаёт программе не массив строк-агрументов, а всю командную строку одной строкой. Соответственно, разные программы по-разному могут бить эту строку на отдельные агрументы. И если программа не умеет разбивать правильно, то наверное уже ничего не сделаешь.
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:37:58.893333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
Mkey C:\Program Files\WinRAR>rar.exe a "d:\aaa bbb\1.rar" "d:\123 456\111.txt" RAR 3.51 Авторские права © 1993-2005 Александр Рошал 7 Oct 2005 Зарегистрировано на имя: Eric Blanc Невозможно создать d:\aaa bbb\1.rar Системе не удается найти указанный путь. C:\Program Files\WinRAR>
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:38:27.816666
|
|
|
Mkey
Сообщений: 3426
Оценки: 0
Присоединился: 2006-03-08 14:32:13
|
quote:
windows, в отличие от *nix, передаёт программе не массив строк-агрументов, а всю командную кто Вам такое сказал?
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:40:15.973333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
quote:
Попробуй неполные DOS-имена (ну или как они там называются), т.е. указываешь первые 6 символов названия, а потом ~1 а если пробел после 3-го символа?
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:45:08.703333
|
|
|
Mkey
Сообщений: 3426
Оценки: 0
Присоединился: 2006-03-08 14:32:13
|
quote:
Mkey C:\Program Files\WinRAR>rar.exe a "d:\aaa bbb\1.rar" "d:\123 456\111.txt" RAR 3.51 Авторские права © 1993-2005 Александр Рошал 7 Oct 2005 Зарегистрировано на имя: Eric Blanc Невозможно создать d:\aaa bbb\1.rar Системе не удается найти указанный путь. C:\Program Files\WinRAR> quote:
Microsoft Windows XP [Версия 5.1.2600] (С) Корпорация Майкрософт, 1985-2001. C:\>"C:\Program Files\WinRAR\rar.exe" a "d:\aaa bbb\1.rar" "d:\123 456\111.txt" RAR 3.71 Авторские права © 1993-2007 Александр Рошал 20 Sep 2007 Незарегистрированная копия (наберите RAR -? для вывода справки) Незарегистрированная копия. Пожалуйста, зарегистрируйтесь. Обновление архива d:\aaa bbb\1.rar Обновление d:\123 456\111.txt OK Готово C:\> на d не забыли создать каталог 123 456 и положить туда файл 111.txt ?…. на d не забыли создать каталог aaa bbb ? …. quote:
Microsoft Windows XP [Версия 5.1.2600] (С) Корпорация Майкрософт, 1985-2001. C:\Program Files\WinRAR>rar.exe a "d:\aaa bbb\1.rar" "d:\123 456\111.txt" RAR 3.71 Авторские права © 1993-2007 Александр Рошал 20 Sep 2007 Незарегистрированная копия (наберите RAR -? для вывода справки) Незарегистрированная копия. Пожалуйста, зарегистрируйтесь. Обновление архива d:\aaa bbb\1.rar Обновление d:\123 456\111.txt OK Готово C:\Program Files\WinRAR>
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:52:04.373333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
8|8|8|8| quote:
на d не забыли создать каталог 123 456 и положить туда файл 111.txt …. не забыли quote:
на d не забыли создать каталог aaa bbb забыли 8| СПАСИБ БОЛЬШОЕ ПС. странно, когда прогу писал, то кавычки не помогали, хотя я точно уверен что кавычки ставил и папки были созданы
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-21 17:58:36.433333
|
|
|
Mkey
Сообщений: 3426
Оценки: 0
Присоединился: 2006-03-08 14:32:13
|
вот 100% работающий код quote:
const ArcPass: String = ' m[f] -hp12345 -inul -y log.rar log\*.*'; …………………………………………….. GetDir(0,InstPatch); // путь установки твоей софтины ………………………………………………. var p1: String; begin p1:=ArcPass; ShellExecute(Handle, nil, 'rar.exe', Pchar(p1), Pchar(InstPatch), SW_HIDE); ………………………………………
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-22 07:30:25.933333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: Mkey quote:
windows, в отличие от *nix, передаёт программе не массив строк-агрументов, а всю командную кто Вам такое сказал? msdn. GetCommandLine возвращает LPSTR.
|
|
|
RE: Передача параметров программе из командной строки - 2008-05-22 14:08:30.363333
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
проверяй первый символ на наличие " и конкатенируй строки пока не встретится еще одна. правда вариант долговат //GetCommandLine лучше )
|
|
|
|
|