Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > пробел


Автор: chaos 4.3.2005, 12:04
как запустить поргу такого вида
name name.exe из под доса?
он все время говорит ошибку типо нет такой проги name
пробел ему не нрравится, как с этим бороться

Автор: Негодяй 4.3.2005, 12:19
а атрибут у файла name нескрытый строит?

Автор: Петрович 4.3.2005, 12:45
На дисках с файловой системой FAT у каждого файла есть два имени:
"длинное" - то которое не соответствует DOS-стандарту (8.3),
и "короткое" - соответствующее DOS-стандарту (8.3)

Так вот, твое имя 'name name.exe' это длинное имя. Для запуска его из под DOS, тебе нужно использовать его "короткое" имя. Определить "короткое" имя по "длинному" можно с помощью функции GetShortPathName.

Вот например так:

Код

function sfn (const FileName :String) :String;
 // Возвращает FileName преобразованное в соответствующее короткое имя
var i :Integer;
begin
 SetLength(Result,Length(FileName));
 if  Length(FileName) = 0  then  Exit;
 i := GetShortPathName(pChar(FileName),pChar(Result),Length(Result));
 if  i > Length(Result)  then begin
   SetLength(Result,i);
   i := GetShortPathName(pChar(FileName),pChar(Result),Length(Result));
 end;
 if  i = 0  then  RaiseLastOSError('sfn(%s)',[qd(FileName)]);
 SetLength(Result,i);
end;

Автор: Akina 4.3.2005, 14:04
Для того чтобы использовать в командной строке длинные имена, их надо заключать в кавычки:

C:\SomeFolder> "name name.exe"<Enter>

или

C:\SomeFolder> start "name name.exe"<Enter>

Автор: Fearless 4.3.2005, 23:23
если имеется ввиду командная строчка в XP .. то там есть замечательная клавиша Tab ... которая по первой букве выводит полное название файла или папки ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)