VB调用SHELL,参数路径有空格如何处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB调用SHELL,参数路径有空格如何处理?相关的知识,希望对你有一定的参考价值。

比如:当前程序所在路径为:d:\1 23\4下,即app.path为在d:\1 23\4,在此目录下有一批处理dx.bat,如果通过SHELL调用此批处理?
无空格时格式为:xxx=shell(app.path & "dx.bat",vbHide)
因为app.path中有空格,要想用以上格式调用dx.bat,应该如何写?
请给出完整答案!谢谢!

操作系统:WIN7
因为路径中有空格,所以要加引号处理路径,我要的是加引号处理后的语句!
即:如何给app.path & "\dx.bat"加引号处理了!

i=shell(app.path & "\dx.bat",vbHide),要的是这种格式的。

这个跟空格有关吗?倒是你的程序少了一个\,应该为xxx=shell(app.path & "\dx.bat",vbHide)
按照你的意思,你的app.path应该取值为d:\1 23\4,4后面是没有 \ 这个符号的,再跟后面的dx.bat想连接,就成了d:\1 23\4dx.bat,执行的时候应该提示找不到文件这个错误提示吧?

我试过之后才恢复的啊,我也是WIN7系统呢,这是咋地了?你那提示什么错误啊?追问

根本就不执行那个批处理程序

追答

你把 vbhide 取消看一下,是否有执行呢,我是真的测试过了的,完全可以执行

追问

我要写成这样的:
i=shell(app.path & "\dx.bat",vbNormalFocus),因为app.path中有空格,所有要对路径加引号处理,我要的就是加引号处理后的语句。

追答

我当前工程文件的路径为 C:\Users\Administrator\Desktop\V B
dx.bat文件里面只有一句话: md c:\1
程序里面只有一个按钮,代码如下:
Private Sub Command1_Click()
Dim I As Integer
I = Shell(App.Path & "\dx.bat", vbNormalFocus)
End Sub
测试通过

追问

我的是WIN7 32位,你的是什么系统?

追答

也是啊,我们QQ聊,如何?43595076

参考技术A 不影响的吧,文件夹创建可以用空格,打开也是一样的吧:
shell“d:\1 23\4\dx.bat"
因为是字符,空格不影响。我是这么理解的追问

你自己试下有空格能不能通过就知道了!
我是想用app.path这个路径

追答

明白了!:
shell"explorer d:\1 23\4\dx.bat"

追问

大哥,我要的是把d:\1 23\4用app.path取代后的语句。

参考技术B i=shell(chr(34) & app.path & "\dx.bat" & chr(34),vbHide)本回答被提问者采纳

以上是关于VB调用SHELL,参数路径有空格如何处理?的主要内容,如果未能解决你的问题,请参考以下文章

linux shell 中 如何处理空格的路径?

VB.NET 表单变量是如何处理的

一般如何处理 CXF 请求处理程序中的输入参数?

如何处理字符之间有空格的单词?

Linux中的find和grep命令对查找到的文件如何处理啊

如何处理与 .NET WPF 应用程序具有 OCX 依赖项的 VB6 ActiveX dll 的对话