Как передать путь к папке, в котором могут быть или не быть пробелы, в командный файл и добавить к нему переменную среды PATH? - PullRequest
0 голосов
/ 30 августа 2018

Объяснение

У меня есть простой маленький .bat файл, который выглядит следующим образом. Я бы хотел запустить его в любом месте с Windows 7 до 10. Сейчас он мало что дает, но позже я его расширю.

#REM first argument includes path to folder which contains pdflatex.exe
set PATH=%PATH%;%1
where pdflatex #allows me to see if it can see the exe

Проблема возникает, когда мне нужно отправить путь с пробелами.

  • Если я передаю путь к папке без пробелов и кавычек, он работает нормально.
  • Если я передаю путь к папке без пробелов и кавычек, он не работает.
  • Если я передаю папку с пробелами, кавычками или нет, она не работает.

Я полагаю, это потому, что Windows плохо работает с кавычками в переменной PATH, то есть с разделителями-запятыми. %1 все еще содержит кавычки к тому времени, когда мы находимся в файле .bat.

Однако кавычки кажутся необходимыми с точки зрения командной строки, чтобы гарантировать, что они рассматриваются как один аргумент.

Единственный метод, который я могу обдумать, это всегда включать кавычки вокруг пути (гарантируя, что он всегда обрабатывается как один аргумент), а затем обрезать первый и последний символ.

Хотя это не выглядит элегантным решением, и мне было интересно, есть ли лучший способ сделать это.

Короче

Как удалить кавычки из аргументов пакетного файла?

...