Еще один -
# ^-?0*(?:20(?:[0-4][0-9]|5[0-5])|[0-9]{1,3})$
^
-?
0*
(?:
20
(?:
[0-4] [0-9]
|
5 [0-5]
)
|
[0-9]{1,3}
)
$
Я понял, что случилось. Как я написал в комментарии, после использования shell(x)
вместо system(x)
он вернулся 'C:/Program' is not recognized as an internal or external command, operable program or batch file.
. Поэтому я переустановил свой wkhtmltopdf в папку, имя которой не содержит пробелов. Итак, теперь wkhtmltopdf_exe
:
wkhtmltopdf_exe="C:/Programs/wkhtmltopdf/bin/wkhtmltopdf.exe"
Остальная часть кода одинаков. Последующее наблюдение здесь было бы неплохо, есть ли способ обходных пространств в именах папок? Или я всегда должен избегать пробелов? Помещение пути wkhtmltopdf в кавычки не помогло.
Благодарим пользователя JAD за исправление моего первого кода
То, что вы пытаетесь вставить как команду ("C:/Program Files/wkhtmltopdf/bin>wkhtmltopdf https://finance.yahoo.com/ \"C:/TemporaryFolder/myhtml.pdf\""
), не совсем работает. Первая часть ("C:/Program Files/wkhtmltopdf/bin>
) на самом деле является подсказкой, когда вы запускаете ее в команде. Это не входит в команду, но вместо этого показывает, в какой директории вы используете эту команду.
Если вы замените wkhtmltopdf
на C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe
, он должен работать нормально:
URL="https://finance.yahoo.com/"
wkhtmltopdf_exe="C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe"
save_as="C:/TemporaryFolder/myhtml.pdf"
x=paste0(wkhtmltopdf_exe," ",URL," ",'\"',save_as,'\"')
system(x)
Чтобы ответить на ваш второй вопрос, вызов system()
запускает команду через CMD. Таким образом, в основном все, что вы можете испортить через CMD.exe, вы можете испортить через system()
.
C:/TemporaryFolder/
по-прежнему пуст после запуска этого кода. Однако, когда я делаю y=system(x)
с вашим кодом y
, это 127
по какой-то причине ...
– Alexandros
13 July 2018 в 13:13
127
как код ошибки обычно означает, что файл не найден. Можете ли вы подтвердить имя исполняемого файла для команды wkhtmltopdf
is C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe
?
– JAD
13 July 2018 в 13:15
shell
вместо system
. Я недавно краснел, они должны работать одинаково для большинства случаев (это правда?). Это вернуло мне ошибку: 'C:/Program' is not recognized as an internal or external command, operable program or batch file.
. Это ту же ошибку, что и 127
?
– Alexandros
13 July 2018 в 15:17