2014-01-30 3 views
0

Я работаю над скриптом, где я использую полный путь .exe, и команда относится к этому exe.Проблема с полным пути .exe в PERL

Для примера:

Путь C:\Documents and Settings\xx\My Documents\utils.exe

команда dir |findstr -i xx |findstr -i tr

Мой Perl код

$command='dir |findstr -i xx |findstr -i tr; 
$path=C:\Documents and Settings\xx\My Documents\utils.exe 
$result= `$path $command`; 

Я пробовал много вещей, как system, push @cmd, прошли многие блоги в google, но я действительно не могу найти наше решение на thi s.

Может кто-нибудь, пожалуйста, помогите мне с этим?

ответ

1

Если вы расширите код, который вы получите (при условии, что должно быть закрыто ' на линии $command=).

$result= `C:\Documents and Settings\xx\My Documents\utils.exe dir |findstr -i xx |findstr -i tr`; 

Обратите внимание на пробелы. Они означают, что Perl пытается запустить программу C:\Documents с аргументами and Settings\xx\My Documents\utils.exe dir и передать их в findstr.

Цитирование имя исполняемого файла должно помочь с созданием ехе пробег:

$result= `"$path" $command`; 

Другая возможность заключается в том, чтобы изменить рабочий каталог C:\Documents and Settings\xx\My Documents, а затем запустить программу:

$result= `utils.exe $command`; 
+0

Спасибо вам большое :) Это решение работает отлично $ result = '" $ path "$ command'; –

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