Vba 从Visual Basic到批处理文件的参数
我知道这很容易。我是管理员,不是FT程序员。我正在尝试将prjFilename和emailFilename参数传递给批处理文件。为了确保值正确,我在Else分支中弹出一个MsgBox。那里一切都很好。问题是,当我尝试在批处理文件中使用变量时,该变量字符串在文件名路径的第一个空格处被截断 因此,当我回显%1%以测试它时,会得到一个截断的路径。感谢您的帮助Vba 从Visual Basic到批处理文件的参数,vba,batch-file,Vba,Batch File,我知道这很容易。我是管理员,不是FT程序员。我正在尝试将prjFilename和emailFilename参数传递给批处理文件。为了确保值正确,我在Else分支中弹出一个MsgBox。那里一切都很好。问题是,当我尝试在批处理文件中使用变量时,该变量字符串在文件名路径的第一个空格处被截断 因此,当我回显%1%以测试它时,会得到一个截断的路径。感谢您的帮助 If prjFilename = "" Then MsgBox("Please select a GSA Project
If prjFilename = "" Then
MsgBox("Please select a GSA Project File to process")
ElseIf emailFilename = "" Then
MsgBox("Please select a list of emails to process")
Else
Dim DosRun As Process = New Process
Dim strArgs As String
MsgBox(prjFilename)
MsgBox(emailFilename)
strArgs = prjFilename & " " & emailFilename
MsgBox(strArgs)
DosRun.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
DosRun.StartInfo.FileName = "C:\Users\Eric\Desktop\KRUSH\krush.cmd"
DosRun.StartInfo.Arguments = prjFilename & " " & emailFilename
DosRun.Start()
如果
prjFilename
或emailFilename
中的任何一个包含空格,则在将其传递到批处理文件时,需要在其周围放置双引号字符。VBA中的双引号字符文字是”
(我不骗你)
我通常在模块顶部将Public Const vbQuote定义为String=“”
,并使用它
strArgs = """" & prjFilename & """" & " " & """" & emailFilename & """"