怎样使命令行参数能支持长文件名?


如果将多个选中文件作为命令参数传给程序,我们知道它是用空格隔开各个文件名了.这样就出现问题,长文件名中是可以有空格的,那就不好区分作为分隔符的空格和文件名里的空格了.那么怎样使这样的命令行参数可以不与长文件名发生冲突?

8 个解决方案

#1


文件名不能包含下列字符之一:
/\:<>|"*?
由于\会在路径中使用,建议使用其他几个作为分隔符。

#2


建议把文件名先读到某变量中,再去做

#3


命令行参数当然支持长文件名,这不是由你的程序决定的事情,而只是必须你要告诉系统,你需要传递长文件名!
常见设定传递文件名做命令行参数的可能用途就是:通过注册表让自已程序关联特定文件类型。
一般写入键值类似这种形式:{app_path}\myprog.exe %1
这样写是不支持长文件名的,
换种写法:"{app_path}\myprog.exe" "%1"
多个引号就可以了^_^


#4


一般不能

#5


那要是有多个文件同时传送到命令行参数中,被批量地处理,这些文件名可以被自动正确地分开(如果文件名中有空格的话)吗?

#6


我用加引号的写法写注册表,在右键菜单中添加一个项目,该项将执行一个程序,只有一句:MsgBox Command().执行时发现即使选择多个文件它也是一个文件名一个MsgBox地显示的,那是不是说明它把一个参数分给一个程序实例而不是在一个程序中处理所有的参数?那样的话不是我想要的效果啊.

#7


这方法测试多文件不对!
资源管理器对多选文件的右键操作,是每个文件分别调用关联程序的。

要实现这种效果,你需要自已建立程序自身间的通讯,当发现自身已在运行时,就不再启动新实例,而是简单的将命令行传给最先启动的实例再将自己关闭。先启动的实例接到传来的命令行参数,自动打开。

#8


只能这样啊?还是小有点麻烦的。
吃一堑长一智谢谢啦啊!

顺便再问个问题:在文件夹里的空地处右击弹击的菜单如果想向其中添加项目该怎么做?
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告