2013-04-15 6 views
0

моя программа принимает входные данные от пользователя каталога файлов через командную строку в окнах, а затем запускает diruse на указанном пути для сбора информации о доступном дискового пространства. По какой-то причине ошибка говорит: «diruse.exe не распознается как внутренняя или внешняя команда». Ниже приведен раздел моего кода, чтобы просмотреть его целиком, пожалуйста, перейдите here. Я вынул код из его подпрограммы, чтобы убедиться, что это сработает, но это не так.Perl diruse не распознан

&argument_checking; #calling sub checking user arguements. 

#&reading_directory; # reads user given directory. 
chdir($user_directory), or die " Directory $user_directory does not exist"; #change to user directory or exit. 
open(DIRUSE, "diruse.exe /* . |"); #opening user given directory path. 

foreach my $directory_lines(<DIRUSE>) 
{ 
    chomp $directory_lines; 
    push(@directory_lines, $directory_lines); #pushing directory lines from  file into an array 
} 

close(DIRUSE); #closing 

shift(@directory_lines); 
shift(@directory_lines); 

pop(@directory_lines); 

&chop_and_save; 
&gui_creator; 
+1

Perl 4 необходимо было '&' перед функциями; Perl 5 не часто им нужен. Вы можете попробовать использовать только 'diruse' вместо' diruse.exe', но это, вероятно, не будет иметь никакого значения. Где хранится ваша команда 'diruse.exe'? Это место на вашем PATH? –

+0

У меня есть diruse.exe на моем пути, который для целей тестирования является только c: \ windows \ system32. У меня также есть diruse.exe в той же папке, что и мой скрипт. – 2013-04-15 23:18:48

+0

OK; вы вышли из моей компетенции, тогда (хотя, поскольку вы 'chdir' в другой каталог,' diruse.exe' в текущем каталоге не будет никакой помощью. Вы должны проверить, что 'open()' команды: «open (DIRUSE,« diruse/*. | ») или умереть« Не удалось открыть команду »; или что-то подобное. –

ответ

0

Это сообщение приходит из командной оболочки, и это означает, что он не может найти diruse.exe в текущем каталоге или в любой директории в PATH этого процесса.

+0

Код, который я опубликовал, дает ошибку, а также я поместил diruse.exe в путь, который я использую. – 2013-04-16 01:33:59

+0

Извините, одурачен блуждающей запятой до 'или die'. – ikegami

+0

Что касается пути,' cmd' не согласен, и это единственное мнение, которое имеет значение. – ikegami

Смежные вопросы