xsltproc в Windows: ошибка ввода-вывода: недопустимый аргумент, если аргумент является абсолютным путем

Я использую xsltproc в Windows в соответствии с этим руководством.

Когда я запускаю xsltproc с относительными путями, то есть:

xsltproc -o "..\output.html" "c:\templates\out.xsl" "c:\data\input.xml"

все в порядке. Но когда я запускаю его с абсолютными путями, он терпит неудачу, например:

xsltproc -o "c:\output.html" "c:\templates\out.xsl" "c:\data\input.xml"
I/O error : Invalid argument
I/O error : Invalid argument

пробовал как с прямой, так и с обратной косой чертой в качестве разделителей пути, с тем же результатом (проблема только для аргумента -o)

Как xsltproc ожидает, что будет закодирован абсолютный путь Windows?


person fferri    schedule 07.06.2017    source источник
comment
Вы пытались процитировать путь? Нравится -o "C:\output.htm" или -o "C:/output.htm"? Кроме того, какую версию libxslt вы используете?   -  person Daniel Haley    schedule 08.06.2017
comment
Я только что попробовал с libxslt-1.1.26.win32, и он отлично работает, если я заключаю пути в кавычки. Похоже, это вовсе не вопрос о XSLT - это все о том, как передавать аргументы исполняемому файлу Windows.   -  person Eiríkr Útlendi    schedule 08.06.2017
comment
добавление кавычек не имеет значения (в путях нет пробелов). это похоже на ошибку   -  person fferri    schedule 08.06.2017


Ответы (2)


Для меня это была проблема с путем к выходному файлу; даже несмотря на то, что он был заключен в двойные кавычки, он все равно выдавал ошибку. Как только я удалил папку, содержащую пробелы, она сработала. Как ни странно, загруженный файл %I находился в той же папке, содержащей пространство, и мне не нужно было его изменять.

person kellogs    schedule 10.11.2017

Кажется, что xsltproc не знает буквы диска ("C:\path\to\output\output.html"). Пробелы и обратные косые черты не проблема. Если я уберу букву диска из «вывода» («\path\to\output\output.html»), все будет работать нормально.

Проблема с этим «решением» заключается в том, что ввод и вывод должны иметь одну и ту же букву диска.

Йенс

person Nigjo    schedule 25.03.2020