求助:AHK脚本Unzip函数无法解压指定文件
解决AHK脚本Unzip函数调用失败问题
- 确认Unzip函数已正确定义
AutoHotkey无原生Unzip()函数,直接调用会报错。需先实现该函数,以下是两种可行方案:
方案一:利用Windows内置Shell对象解压(无需额外软件)
Unzip(zipPath, destPath) { ; 确保目标目录存在 if !FileExist(destPath) DirCreate(destPath) ; 创建Shell应用对象 shell := ComObjCreate("Shell.Application") ; 获取压缩包文件列表 zip := shell.NameSpace(zipPath) ; 获取目标目录对象 dest := shell.NameSpace(destPath) ; 执行解压(参数16表示覆盖现有文件) dest.CopyHere(zip.Items(), 16) ; 等待解压完成(避免脚本提前终止) Sleep, 2000 }
方案二:使用7-Zip命令行解压(需提前安装7-Zip)
Unzip(zipPath, destPath) { ; 7-Zip默认安装路径,可根据实际情况修改 sevenZipPath := "C:\Program Files\7-Zip\7z.exe" if !FileExist(sevenZipPath) { MsgBox, 未找到7-Zip,请检查安装路径! return } ; 确保目标目录存在 if !FileExist(destPath) DirCreate(destPath) ; 执行解压命令,-y表示自动确认覆盖 RunWait, %sevenZipPath% x "%zipPath%" -o"%destPath%" -y,, Hide }
检查路径有效性
- 验证压缩包路径
C:\Users\Ricardo\Desktop\Add_Polo_Plano.zip是否真实存在,无拼写错误 - 确认目标路径
C:\Bots\Add_Polo_Plano具备写入权限,若路径不存在,需提前创建(上述示例已包含目录创建逻辑)
- 验证压缩包路径
排查权限问题
若脚本无管理员权限,可能无法写入C:\Bots目录,右键脚本选择「以管理员身份运行」测试。特殊字符与编码检查
确保压缩包及路径中无特殊非英文字符,若存在,尝试使用短路径或调整编码。
内容的提问来源于stack exchange,提问作者Matheus Ferreira
相关产品推荐
相关产品推荐

