首页 > 解决方案 > windows上的java命令行参数处理

问题描述

我有一个 java 程序,想将一些文件路径作为命令行参数传递。如果它们包含空格,我必须引用它们。这适用于 Linux 和 Windows。但是在 Windows 上,如果路径包含斜杠,我会遇到问题。

为了测试这一点,我编写了一个简单的Echo.java程序。

所以,如果我说:

爪哇-cp。"C:\Program Files\" "C:\其他文件"

[C:\Program Files" C:\Other]
[Files]

那么,这里发生了什么?反斜杠似乎逃脱了引用。对于 Linux,这是可以的,但这是在 Windows 上!

但即使这样:

设置 PF="C:\Program Files\"

爪哇-cp。"%PF%" "C:\其他文件"

[C:\Program Files" C:\Other]
[Files]

如果没有尾部斜杠,它会按预期工作:

爪哇-cp。"C:\Program 文件" "C:\其他文件"

[C:\Program Files]
[C:\Other Files]

标签: javabatch-filecommand-line-arguments

解决方案


尝试使用双斜杠 C:\Program Files\" 来转义斜杠 \ (slash-slash-quote)。甚至这里的文本编辑器也转义了斜杠引号


推荐阅读