моя программа принимает входные данные от пользователя каталога файлов через командную строку в окнах, а затем запускает 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;
Perl 4 необходимо было '&' перед функциями; Perl 5 не часто им нужен. Вы можете попробовать использовать только 'diruse' вместо' diruse.exe', но это, вероятно, не будет иметь никакого значения. Где хранится ваша команда 'diruse.exe'? Это место на вашем PATH? –
У меня есть diruse.exe на моем пути, который для целей тестирования является только c: \ windows \ system32. У меня также есть diruse.exe в той же папке, что и мой скрипт. – 2013-04-15 23:18:48
OK; вы вышли из моей компетенции, тогда (хотя, поскольку вы 'chdir' в другой каталог,' diruse.exe' в текущем каталоге не будет никакой помощью. Вы должны проверить, что 'open()' команды: «open (DIRUSE,« diruse/*. | ») или умереть« Не удалось открыть команду »; или что-то подобное. –