首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winzip不执行文件路径中的间隙

Winzip不执行文件路径中的间隙
EN

Stack Overflow用户
提问于 2013-12-27 16:24:49
回答 1查看 160关注 0票数 0

我使用了Extract all .gz file in folder using VBA Shell command的代码来提取.gz files.The问题,如果文件路径中有一个空白,代码就不能工作,如果没有空白,它就会工作,如下所示:在第一个示例中,没有'_‘而是一个空白,在'K’和'L‘之间没有'_',因此文件路径有空白,而运行的示例是’_ ',而整个文件路径没有空白。

代码语言:javascript
复制
'Example that doesn't work:

Sub extractAllFiles()

Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String

File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
  shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\"
  Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub




'Example that works:

Sub extractAllFiles()

Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String

File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
  shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\"
  Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub

我想要第一个例子起作用,但为什么不行呢?

没有错误。代码运行,打开winzip,但它是空的,没有文件是解压缩的!非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2013-12-27 16:45:52

尝试在shell字符串中的路径周围放置引号:

代码语言:javascript
复制
shellStr = "C:\Program Files\WinZip\winzip32 -e ""Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\" & File & """ ""Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\"""

如果您还不知道,两个双引号("")的计算结果是字符串中的一个双引号。与C等语言相比,反斜杠将用于转义引号(\")。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20804058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档