我的应用程序启动并加载文件,如果我这样做: myApp /file:c:nospaces.asd从cmd但如果我做myApp /file:c:with spaces.asd它不会工作,因为该程序收到两个参数: myApp /file:c:with和spaces.asd 。
我知道我可以做我的应用程序myApp \”/file:c:with spaces.asd\” ,它会像这样从cmd 。 然而,这不是一个好的解决scheme,因为如果我双击.asd文件(自定义扩展名)(并select与我的应用程序启动),那么main不会获取参数作为一行,而是两个参数。
我怎么能解决这个问题,以便我的main收到只有一个参数时,双击文件?
在C / C ++中创build一个unix / linux命令行工具的最佳做法是什么?
将Unicode命令行parameter passing给控制台应用程序
linux bash:在一个case中对-c和 – 作出反应
用于parsing参数GNU风格的库?
如何通过参数子项设置windows服务“命令行”参数?
将string列表传递给控制台应用程序
如何使用Apache Mod_rewrite删除PHP扩展名,同时保留GET参数?
linux命令输出作为另一个命令的参数
linux的别名问题
在C函数中使用“nmem”和“size”参数需要什么?
如果找不到文件,可以将参数连接在一起。 像这样的东西:
public static voID main(String[] args) { String filename = joinArgumentsTovalIDfilename(args); } public static String joinArgumentsTovalIDfilename(String[] args) { if(args.length == 0) { return \”\”; } String filename = args[0]; int index = 1; while(!new file(filename).exists() && index < args.length) { filename += \” \” + args[index]; index++; } return filename; }
这假定第一个参数(或参数)必须是文件名。 任何额外的agruments可以通过以某种方式记住偏移量索引来评估(不包括在上面的代码中)。
但是请注意:这是一个将参数传递给应用程序的非标准行为,可能导致cunfusion。 所以如果你找到一个方法来传递一个\”\”包装文件名参数,不要这样做!
双击启动java将受到与windows注册表相关的windows注册表中的jar文件启动命令的影响。
这些是一些类似的问题,你可以看看:
在windows上运行JAR文件
java可以从cmd运行jar,但不能通过双击运行
他们提到了确保在注册表c:…javaw.exe\” -jar \”%1\” %的可执行文件后面带有通配符的有用部分c:…javaw.exe\” -jar \”%1\” %
总结
以上是内存溢出为你收集整理的我如何处理参数中的空格?全部内容,希望文章能够帮你解决我如何处理参数中的空格?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容