Пробелы в аргументах командной строки. Не удается правильно прочитать "C:\Program Files"
Мне нужно запустить тихую установку. Команда такая
setup.exe -silent -response <Response File> -jreLoc <jreLoc>
jreLoc - это папка, в которой нужно найти bin/java.
Я установил JRockit в качестве своего JDK, и он установлен в "C:\Program Files\Java\jrockit-jre1.6.0_29-R28.2.0"
Проблема, с которой я сталкиваюсь, заключается в том, что значение для jreLoc доступно только для чтения до "C:\Program", независимо от того, что я делаю с точки зрения редактирования пути или подстройки, двойных кавычек, прямой или обратной косой черты и т. Д.
Я использую скрипт Python для настройки всей среды, а позже скрипт Python вызывает команду setup.exe.
Я искал в Интернете, но обходные пути не работают. Любые намеки или указатели очень ценятся.
2 ответа
Все пути Windows, содержащие пробелы, также имеют эквивалентный путь без пробелов, который вы можете использовать, если не можете понять, как заставить программу принять путь с пробелами.
Для вашего конкретного примера, вероятно, путь без пробелов C:\Progra~1\Java\jrockit-jre1.6.0_29-R28.2.0' but if you open a command prompt and use
dir /x` в папке верхнего уровня, которая скажет вам, что находится в вашей системе:
C:\>dir /x c:\progr*
Volume in drive C is XP System
Volume Serial Number is D8B8-DBEB
Directory of c:\
30/01/2012 16:16 <DIR> PROGRA~1 Program Files
13/02/2012 13:51 <DIR> PROGRA~2 Program Files (x86)
0 File(s) 0 bytes
2 Dir(s) 26,189,307,904 bytes free
Попробуйте добавить еще одну пару двойных кавычек вокруг существующих кавычек:
"\"C:\Program Files\Java\jrockit-jre1.6.0_29-R28.2.0\""
в вашем скрипте Python. Таким образом, одна пара будет для Python, а другая - для оболочки, которая вызывает внешний исполняемый файл.