VB中执行批处理的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 03:13:03
VB中执行批处理,由于路径中可能包含空格,在执行的时候居然默认在vb程序所在的目录下执行,而不是在批处理所在的路径下执行,例如:
在D:\Program Files\QQ\文件夹下有一个a.bat的批处理,功能是新建一个aaa文件夹,我想让他在D:\Program Files\QQ文件夹下生成,他却生成在了vb程序所在的目录,求解决方法,谢谢
我用过start 来执行,失败
路径有不确定性,是用api读出来的,不一定是D:\Program Files\QQ
不能使用cd跳转过去

'用下面方法即可满足你的要求:

Private Sub Command1_Click()
Dim file, wshshell, linkFile, oMyShortcut
Dim i As Integer
file = "D:\Program Files\QQ\a.bat" '请修改为具体的文件名
linkFile = App.Path & "\~1.lnk"
Set wshshell = CreateObject("Wscript.shell")
Set oMyShortcut = wshshell.CreateShortcut(linkFile)
oMyShortcut.TargetPath = file
oMyShortcut.workingdirectory = Left(file, InStrRev(file, "\") - 1)
oMyShortcut.Save
file = "rundll32 url.dll,FileProtocolHandler ""#"""
Shell Replace(file, "#", linkFile), vbNormalFocus
kill linkFile
End Sub

D:\Progra~1\QQ
试下.

P处理的参数带空格的时候要加双引号的。
例如不能写mkdir c:\a p,要写mkdir "c:\a p"
试试看、
还有就是ls的,类似mkdir D:\Progra~1\QQ这样的。
印象中不会出这么奇怪的问题吧。。