基于不同电脑脚本路径配置AutoHotkey的A_ScriptDir
AHK v1 多路径检测启动脚本修正
原脚本存在几个关键问题导致无法正常运行:
- 文件名
bbb-1-myahkdefault.ahk未用引号包裹,被错误识别为变量运算而非字符串 - 错误用
A_ScriptDir覆盖找到的有效路径 - 尝试修改只读属性
A_ScriptDir(AHK v1中该变量不可手动设置) - 仅调用检测函数,未实际执行找到的目标脚本
修正后的脚本
#NoEnv #SingleInstance Force #Requires AutoHotkey v1 ; 调用路径检测并执行目标脚本 DetectAndRunScript() DetectAndRunScript() { static targetPath := "" ; 已找到过路径则直接运行 if (targetPath != "") { Run, % targetPath "\bbb-1-myahkdefault.ahk" return } ; 定义待检测的路径数组 pathArray := ["B:\", "F:\dropbox\autohotkey", "C:\dropbox\autohotkey"] Loop % pathArray.Length() { currentPath := pathArray[A_Index] targetFile := currentPath "\bbb-1-myahkdefault.ahk" ; 检测目标文件是否存在 if FileExist(targetFile) { targetPath := currentPath ; 执行找到的脚本 Run, % targetFile ToolTip, 已运行脚本:%targetFile% SetTimer, ToolTip, -2000 return } } ; 所有路径均未找到文件时提示 MsgBox, 未找到目标脚本,请检查路径设置 }
关键修正说明
- 为目标文件名添加引号,确保被识别为字符串
- 放弃修改只读变量
A_ScriptDir,改为直接运行找到的目标脚本 - 新增
Run命令执行目标文件,补全核心功能 - 用静态变量记录已找到的路径,避免重复检测
- 添加提示信息,方便确认脚本运行状态
内容的提问来源于stack exchange,提问作者Brad Schrunk
相关产品推荐
相关产品推荐

