Я хотел бы запустить Perl-скрипт, который запускает команду дефрагментации в Windows. Когда я пытаюсь просто использовать
system("defrag C:");
Я получаю сообщение «дефрагментация не является внутренней или внешней командой, исполняемой программой или пакетным файлом». Я получаю ту же ошибку, даже если указываю полный путь к C:\Windows\System32\defrag.exe. Кроме того, любая проверка на наличие файла defrag.exe не проходит. Например:
if(-f "C:\\Windows\\System32\\defrag.exe"),
if(-x "C:\\Windows\\System32\\defrag.exe"), and
if(-e "C:\\Windows\\System32\\defrag.exe")
все терпят неудачу. На самом деле они терпят неудачу при тестировании любого файла .exe. Это отлично работает в Windows 2003, кто-нибудь знает, почему это больше не работает в Windows 2008?
Спасибо!
Крис
Обновление: изначально обратная косая черта не экранировалась. Фиксированный.
C:/Windows/SysWow64/defrag.exe
. - person David W.   schedule 16.08.2011