shellescape
недопустимо в Windows.В Windows вы можете использовать кавычки для заключения сложных имен файлов.Также обратите внимание, что если вы используете кавычки, вам нужно предоставить два аргумента для start
, так как первый параметр интерпретируется как заголовок окна команды:
START ["title"] [/ D путь] [/ I] [/ MIN] [/ MAX] [/ SEPARATE |/ ПОДЕЛИТЬСЯ] [/ LOW |/ НОРМАЛЬНЫЙ |/ ВЫСОКИЙ |/ РЕАЛЬНОЕ ВРЕМЯ |/ ABOVENORMAL |/ BELOWNORMAL] [/ AFFINITY] [/ WAIT] [/ B] [команда / программа] [параметры]
Самый простой способ обойти эти проблемы - использовать многопараметрическую версию system
:
system('start', '', $filenamewithspaces)
Если вам необходимо использовать однопараметрическую версию, то:
system("start \"\" \"#{$filenamewithspaces}\"")
... что гораздо уродливее и менее читабельно, как вы можете видеть.