命令行中路径带空格问题

gaogar2008 2012-07-25 09:38:43
我有一个程序,调用一个外部程序生成一个文件,使用命令行方式调用,命令行如下:
cmd /c "C:\Program Files\***\***.exe" "***" "***" 16 #FFFFFF 1 0 "C:\Program Files\***\files\***.png"

这个命令在名称带有空格的文件夹下不能正常运行,异常信息是:
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件

我已经在文件路径的地方加上了“”双引号,但仍未解决问题,请问我双引号添加的位置正确吗?那里出现问题了?谢谢大家!
...全文
1537 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
PCI_E 2012-07-26
  • 打赏
  • 举报
回复
命令行中要传带空格路径的话,这个路径参数要用双引号引起来就可以了。
例如:cmd.exe "C:\Program Files\..." "系统目录"
gaogar2008 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 的回复:]
string path = @"C:\test.txt";

这样会编译成一个完整的路径吧
[/Quote]
这种形式试过了,没有效果
yezhendong185 2012-07-26
  • 打赏
  • 举报
回复
string path = @"C:\test.txt";

这样会编译成一个完整的路径吧
gaogar2008 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]
大家好热情呀,我也来凑个热闹。顺便也回复下,直接在你的路径上加个@即可。
[/Quote]
试了,不行,现在使用缩写的形式做了Progra~1,但在考虑如果文件名命有空格,但又不足6位字符的话,需要怎样处理。还有的是如果文件夹名称是中文的,那么这种缩写的形式就无效了。这还是一个问题需要处理。请问有没有好的方法解决?
gaogar2008 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 的回复:]
命令行中要传带空格路径的话,这个路径参数要用双引号引起来就可以了。
例如:cmd.exe "C:\Program Files\..." "系统目录"
[/Quote]
现在有一种情况,比如现在的字符串是这样:
cmd.exe "abc.exe" 15 -vf "movie=0:png:*****"
这里的*****是一个文件路径,并且是带空格的,它已经在“”里面了,但是没有效果。这里的*****该如何处理呢?
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
奇怪,前面这段路径\"C:\\Program Files\\***\\***\\***.exe\"如果加上双引号的话,就变成在其他不带空格的目录下也没有效果了。如\"D:\\MyFiles\\***\\***\\***.exe\"
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
字符串两边加双引号即可
[/Quote]
意思是吧拼接好的字符串在用一个双引号引起来吗?是cmd /c之后开始还是连cmd /c也一起引起来?
shushukui 2012-07-25
  • 打赏
  • 举报
回复
字符串两边加双引号即可
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
\"\"C:\\Program Files\\***\\***\\***.exe\"\"
这样。
没有xp没法测试,win7下不加第二层引号也是可以的
[/Quote]
试了下,还是不行。我是win7的。
iyomumx 2012-07-25
  • 打赏
  • 举报
回复
\"\"C:\\Program Files\\***\\***\\***.exe\"\"
这样。
没有xp没法测试,win7下不加第二层引号也是可以的
wanxindavid 2012-07-25
  • 打赏
  • 举报
回复
string str = @"路径(不需要转义字符)";
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
该转义的 转义.
[/Quote]
我这里的还有什么该转义的呢?
cmd /c \"C:\\Program Files\\***\\***\\***.exe\" \"***\" \"***\" 16 #FFFFFF 1 0 \"C:\\Program Files\\***\\files\\***.png\"

wanxindavid 2012-07-25
  • 打赏
  • 举报
回复
string str = @"你的路径";
天下如山 2012-07-25
  • 打赏
  • 举报
回复
该转义的 转义.
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
再加一层引号
[/Quote]
如何再加一次双引号?可以给个例子吗?
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 happyrain2010 的回复:]
前面加个@
[/Quote]
原来我看错了,仍然没有效果
iyomumx 2012-07-25
  • 打赏
  • 举报
回复
再加一层引号
天下如山 2012-07-25
  • 打赏
  • 举报
回复
在C#中的话 赋值字符串的时候加个@
比如:string s=@"...";
tellxp 2012-07-25
  • 打赏
  • 举报
回复
双引号路径
gaogar2008 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
前面加个@
[/Quote]
加了@,文件被生成出来了,但调用时所带的参数没有效果。真纠结~~
加载更多回复(5)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧