【问题标题】:White spaces in command line arguments. Cannot read "C:\Program Files" properly命令行参数中的空格。无法正确读取“C:\Program Files”
【发布时间】:2012-02-14 00:06:43
【问题描述】:

我需要运行静默安装。命令是这样的

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 命令。

我在网上搜索过,但解决方法不起作用。 非常感谢任何提示或指针。

【问题讨论】:

  • 您能否展示(即复制/粘贴)您尝试过的内容以及效果不佳的原因?

标签: python command-line-arguments jrockit


【解决方案1】:

所有包含空格的 Windows 路径也有一个等效的不带空格的路径,如果你不知道如何让程序接受带空格的路径,你可以使用它。

对于您的特定示例,无空格路径可能是顶级文件夹上的 C:\Progra~1\Java\jrockit-jre1.6.0_29-R28.2.0' but if you open a command prompt and usedir /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

【讨论】:

  • 谢谢。这可行,实际上是可定制的,具体取决于我是 32 位还是 64 位。
【解决方案2】:

尝试在现有引号周围添加另一对双引号:

"\"C:\Program Files\Java\jrockit-jre1.6.0_29-R28.2.0\""

在您的 Python 脚本中。这样,一对将用于 Python,另一对将用于调用外部可执行文件的 shell。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多