无忧启动论坛

标题: 帮忙处理个注册表右键菜单通用的带参命令行的问题 [打印本页]

作者: zhaoyuxing    时间: 2013-5-3 11:03
标题: 帮忙处理个注册表右键菜单通用的带参命令行的问题
本帖最后由 zhaoyuxing 于 2013-5-3 11:12 编辑

我有个命令行的程序文件(不是自己开发的,其他地方弄来的),可以专门处理tif文件做某种效果。
我把它弄到注册表里与tif右键菜单产生关联。希望达到在tif文件的右键菜单上对应我这个程序的项目运行效果是在对应tif原文件同一目录下生成一个已被这程序处理的ok.tif新文件,并且运行后保留命令行窗口(要看运行信息)。

可现在出现一些麻烦

右键菜单用REG_EXPAND_SZ类型,

若数据为
"%COMSPEC%" /k "f:\程序所在路径\程序.exe" %1 -o ok.tif
这个表达不管程序路径及程序名称有无空格,针对原tif文件整个路径及文件名没有空格时就正常,若遇有空格,就出错。

若数据改为
"%COMSPEC%" /k "f:\程序所在路径\程序.exe" "%1" -o ok.tif
则这个表达不管程序路径及程序名称有无空格,针对原tif文件整个路径及文件名有空格时就正常,若无空格,就出错。

若数据为
"%COMSPEC%" /k f:\程序所在路径\程序.exe "%1" -o ok.tif
这个表达不管原tif文件整个路径及文件名没有空格,只要程序所在路径及程序名无空格就正常,若遇有空格,就出错。

上面的“-o”是该程序的参数。
请问怎么能搞一个通用的表达?

针对批处理的%~p1、%~f1、%~n1、%%1等方式试过均无效
作者: 527104427    时间: 2013-5-4 07:00
把程序传上来
作者: pznpt    时间: 2013-5-5 00:20
"%~1" 试过没有?

作者: cxmzlxb    时间: 2013-5-7 12:41
另一个思路,右键调BAT BAT来处理,这样就不会有错了,我都是这样处理的,并且好处是,可以保留CMD窗口查看运行信息,你的这个,估计达不到你说的要看窗口运行信息的目的吧.
作者: cxmzlxb    时间: 2013-5-7 12:50
"%COMSPEC%" /k ''f:\程序所在路径\程序.exe" "%~1" -o ok.tif
作者: zhaoyuxing    时间: 2013-5-8 13:24
cxmzlxb 发表于 2013-5-7 12:41
另一个思路,右键调BAT BAT来处理,这样就不会有错了,我都是这样处理的,并且好处是,可以保留CMD窗口查看运行信 ...

的确是一种曲线解决方案
作者: leblanc1    时间: 2013-5-15 12:00
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3