vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似

vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似于doc文件被双击时word会自动打开并读取文件),但有时接到的文件名参... vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似于doc文件被双击时word会自动打开并读取文件),但有时接到的文件名参数有双引号(程序放桌面时),有时没有(F盘时),咋回事?
代码a=command$
有时a="c:\…………"
有时是a=""c:\…………""
展开
 我来答
网海1书生
科技发烧友

推荐于2016-10-01 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26232

向TA提问 私信TA
展开全部
当文件路径中含有长文件名(包括文件夹名和文件名)时,就会带有双引号,否则的话,如果里面含有空格,会被误以为是多个文件。
如果文件路径中的文件夹名和文件名都是8.3的短文件名结构,则不会出现双引号。
追问
那如何规定返回值是长文件名还是短文件名?
追答
你把a中的双引号去掉就行了,用replace函数
精卫信息
2019-07-15 · TA获得超过341个赞
知道小有建树答主
回答量:157
采纳率:66%
帮助的人:66万
展开全部

访问:help.loongzen.com/Main/WindowExtender/v1.0获取最新版本,里面有一个函数就是我写的处理Command$命令行参数的。

'拆分命令行文件列表
Public Function GetFilesByCommand(Optional SplitChar As String = vbNewLine) As String
    Dim FilesList As String, ArrayFiles() As String, Index As Long
    If Len(Command) = 0 Then Exit Function      '命令行参数为空,无返回退出
    If InStr(Command, Chr(34)) > 0 Then         '有包含引号的文件路径
        ArrayFiles = Split(Command, Chr(34))    '按引号分割
        For Index = 0 To UBound(ArrayFiles)     '因为引号必定为成对出现,而路径中不可包含引号,所以切割后的数组,奇数为引号中间内的的文件路径
            If Index Mod 2 = 0 Then ArrayFiles(Index) = Replace(ArrayFiles(Index), Space(1), vbNullChar)
        Next
        FilesList = Join(ArrayFiles, vbNullChar)                                '用空字符连接数组
        Do While InStr(FilesList, vbNullChar & vbNullChar) > 0
            FilesList = Replace(FilesList, vbNullChar & vbNullChar, vbNullChar) '排除冗余的空字符
        Loop
        If Left(FilesList, 1) = vbNullChar Then FilesList = Mid(FilesList, 2)   '排除字符串前后的空字符
        If InStrRev(FilesList, vbNullChar) = Len(FilesList) Then FilesList = Mid(FilesList, 1, Len(FilesList) - 1)
        GetFilesByCommand = Replace(FilesList, vbNullChar, SplitChar)           '按 SplitChar 参数分割字符串并返回
    Else
        GetFilesByCommand = Replace(Command, Space(1), SplitChar)               '按 SplitChar 参数分割字符串并返回
    End If
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式