教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

2023-12-01 0 843
目录
  • 一、Windows 篇 —— VBScript
    • 1、效果图
    • 2、VBS 简介
    • 3、代码实现
    • 4、代码详解
    • 5、其他语法
    • 6、附:VBS 特殊字符表格
  • 二、Mac 篇 —— AppleScript
    • 1、效果图
    • 2、代码实现
    • 3、代码详解

一、Windows 篇 —— VBScript

最近发现 windows 上有一个好玩的东西,叫做 VBScript,可以用来自动执行一些操作。

1、效果图

先来看下最终效果吧!

教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

以上就是一个简单的 VBS 脚本,运行时自动打开 Chrome 浏览器,然后自动打开了三个网页:我的博客,github,LeetCode官网。

这是笔者每天到公司启动电脑时都会开的三个网页。虽然保存了书签,每次开机也要点击七八下,一两天不觉得有什么,长期下来笔者感到非常浪费我的手指细胞!我的手指细胞是用来数钱的,可不是用来做重复工作的,这样实在是太不程序员了。程序员就应该把重复的事情交给电脑!于是笔者发现了 VBScript 这个好东西。

2、VBS 简介

从名字中的 Script 可以看出,它是一种脚本语言,所谓脚本,就是用来解放我们双手的,让我们用脚都可以编程!

教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

——嗯,这段关于脚本的解释纯属吹水,手动狗头防止小朋友误解。

其实脚本的本意是剧本,让程序按照开发者写好的“剧本”开始它的表演。

VBS 脚本是一种解释型语言,解释型语言的意思是它运行的时候会自动给电脑解释代码的意思,也就是不用安装任何编译环境,随便咱们用什么软件写都可以,比如记事本、word、Sublime、VSCode 啥的,只要保存成 vbs 文件即可单击运行。

3、代码实现

本例代码也很简单,新建一个 vbs 文件,名字随便取,比如 robot.vbs,编辑如下:

Set WshShell=WScript.CreateObject(\”WScript.Shell\”)
WshShell.Run \”\”\”C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\”\”\”
WScript.Sleep 3500
WshShell.SendKeys \”https://blog.csdn.net/AlpinistWang\”
WshShell.SendKeys \”{ENTER}\”
WshShell.SendKeys \”{ENTER}\”
WScript.Sleep 1500
WshShell.SendKeys \”^t\”
WshShell.SendKeys \”https://github.com\”
WshShell.SendKeys \”{ENTER}\”
WshShell.SendKeys \”{ENTER}\”
WScript.Sleep 1500
WshShell.SendKeys \”^t\”
WshShell.SendKeys \”https://leetcode-cn.com\”
WshShell.SendKeys \”{ENTER}\”
WshShell.SendKeys \”{ENTER}\”
WScript.Quit

4、代码详解

  • 对于笔者这样的带有目的性学习的初学者,首尾两行直接记作固定格式。
  • WshShell.Run 用来运行 exe 文件,将路径换成自己电脑中想要运行的软件即可,用 三引号 """ 的目的是明确告诉编辑器这是一个字符串,不需要转义,防止路径中有需要转义的字符导致程序出错。这里我设置成了 chrome.exe 的位置。
  • WScript.Sleep 3500 用来设置等待时间,3500 的意思是让程序睡眠 3.5秒,后面的 WScript.Sleep 1500 同理,意思是让程序睡眠 1.5 秒。如果你的程序启动较慢,可以将等待时间设置长一点。
  • WshShell.SendKeys 用来模拟键盘输入,引号中的内容就是输入内容。可以看到我先输入了一个网址。
  • WshShell.SendKeys “{ENTER}” 表示输入回车,{ENTER} 是一个特殊字符,本文后面附有 VBS 特殊字符表格。这里输入网址之后输入了两个回车,原因是我这个不争气的搜狗输入法在我一启动 Chrome 的时候,它就设置成中文输入,导致第一次回车只是把英文的文字打上去了,第二次回车才能跳转到这个网站。
  • 输入了两次回车后,我又让脚本睡眠了 1.5秒,这行代码完全是为了录制那个 gif 时好看一点,不写的话会立即打开三个网站,看不出渐次出现的感觉。删了会更快,嗯,我写完这篇文章的时候已经把它删掉了。
  • WshShell.SendKeys “^t” 表示同时按下 Ctrl + T,^表示 Ctrl 键,也属于一个特殊字符,这里的 t 必须要小写!(咱也不知道为什么有这么蠢的语法设计,坑了我五分钟找原因)。Ctrl + T 是 Chrome 打开新的标签页快捷键,如果你的快捷键不一样,可以对照特殊字符表自行修改。
  • OK,VBScript 大概就是这样的了。其实 VBS 的作用并不仅限于此,它可以用来模拟打开程序,模拟键盘输入,所以可以做出很多好玩的功能。比如笔者的同事写了一个自动连接 Cisco 的脚本(每次都要手动输入密码要吐了,现在终于被解放出来了),还可以用来自动登录 QQ、微信之类的。感兴趣的朋友们可以自行探索。

    对多个程序的操作可以写在同一个 vbs 文件里,只要在一个程序的自动化脚本执行结束后,再次调用 WshShell.Run 启动其他程序,就可以继续操作其他程序了。笔者现在用的脚本效果有:

    • 1.自动打开 Chrome,并打开三个常用网址
    • 2.自动打开 Typora,并输入当前日期生成标题,这是我用来每天记录工作日志的
    • 3.启动 Android Studio,笔者是一名 Android developer,这是用来工作的。

    还有一些功能涉及工作内容不方便透露,总之,想想每天到公司自己要做的初始化工作一键就能完成,是不是有点小激动呢(=,=)附上笔者现在使用的 vbs 脚本的一部分代码:

    Set WshShell=WScript.CreateObject(\”WScript.Shell\”)
    \’ 启动 Chrome,打开常用网址
    WshShell.Run \”\”\”C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\”\”\”
    \’ 等待程序启动
    WScript.Sleep 3500
    WshShell.SendKeys \”https://blog.csdn.net/AlpinistWang\”
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”^t\”
    WshShell.SendKeys \”https://github.com\”
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”^t\”
    WshShell.SendKeys \”https://leetcode-cn.com\”
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”{ENTER}\”
    \’ 每个程序的自动化脚本结束后最好等待一会,给脚本一点执行时间,否则输入过快可能会影响后面的程序
    WScript.Sleep 3500
    \’ 启动 Typora
    WshShell.Run \”\”\”D:\\ware\\Typora\\bin\\typora.exe\”\”\”
    WScript.Sleep 5000
    \’ 获取当前日期的号数
    dayString = day(now)
    \’ 如果当前日期的号数只有一位数,前面补 0,凑成两位。比如 01, 02, 03… 这样做的目的是最终保存的时候格式更好看
    if len(dayString) = 1 then dayString = \”0\”&dayString
    \’ 格式化日期,这里生成的日期格式类似于 2019-12-01
    Currentdate = year(Now)&\”-\”&Month(Now)&\”-\”&dayString
    \’ MarkDown 语法,输入日期大标题
    WshShell.SendKeys \”# \”&Currentdate&\”{Enter}\”
    \’ Ctrl + S 保存
    WshShell.SendKeys \”^s\”
    \’ 等待一秒让保存弹窗弹出来
    WScript.Sleep 1000
    \’ 不断发送 Tab 直到定位到输入地址栏
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{TAB}\”
    WshShell.SendKeys \”{ENTER}\”
    \’ 定位到地址栏后等待一秒,输入过快可能会出错
    WScript.Sleep 1000
    \’ 输入保存的地址
    WshShell.SendKeys \”D:\\projects\\github\\DailyNotes\”
    \’ 等待以便输入完成
    WScript.Sleep 1000
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”{ENTER}\”
    \’ 输入地址后保存弹窗会跳转到地址所在文件夹,需要一点时间。这里需要根据实际情况调整按键
    WScript.Sleep 1000
    WshShell.SendKeys \”{ENTER}\”
    WshShell.SendKeys \”{ENTER}\”
    WScript.Sleep 1000
    WshShell.SendKeys \”{ENTER}\”
    WScript.Sleep 3500
    \’ 启动 Android Studio
    WshShell.Run \”\”\”D:\\ware\\AndroidStudio\\bin\\studio64.exe\”\”\”

    \’ 更多初始化功能
    \’ …
    WScript.Quit

    5、其他语法

    获取当前日期:

    CurrentDate = date()

    默认的格式是月/日/年,也可以这样自定义格式:

    CurrentDate = year(Now)&"-"&Month(Now)&"-"&day(Now)

    其中,CurrentDate 是变量名,名称可以随便起,&号用来连接字符串。

    用弹窗弹出字符串

    msgbox "字符串"

    6、附:VBS 特殊字符表格

    特殊字符VBS 表示SHIFT+CTRL^ALT%退格键{BACKSPACE} 或 {BS} 或 {BKSP}BREAK{BREAK}Delete{Delete} 或 {DEL}向下键{DOWN}向上键{UP}向左键{LEFT}向右键{RIGHT}END{END}ENTER{ENTER} 或 ~ESC{ESC}TAB{TAB}CAPS LOCK{CAPSLOCK}HELP{HELP}HOME{HOME}Insert{Insert} 或 {INS}NUM LOCK{NUMLOCK}PAGE DOWN{PGDN}PAGE UP{PGUP}PRINT SCREEN{PRTSC}SCROLL LOCK{SCROLLLOCK}F1{F1}F2{F2}……F12{F12}

    二、Mac 篇 —— AppleScript

    Mac 上也有类似的脚本语言,叫做 AppleScript,打开 Mac 自带的脚本编辑器即可使用。

    1、效果图

    先看效果图:

    教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手

    2、代码实现

    代码很简单,打开 Mac 自带的脚本编辑器,编辑如下:

    tell application \”Safari\”
    activate
    tell window 1
    set URL of current tab to \”https://blog.csdn.net/AlpinistWang\”
    set current tab to (make new tab with properties {URL:\”http://www.github.com\”})
    set current tab to (make new tab with properties {URL:\”https://leetcode-cn.com\”})
    end tell
    end tell

    3、代码详解

  • AppleScript 的语法比较人性化,就像口语一样,tell application “Safari” 表示告诉应用 Safari。
  • activate 意思是激活,也就是打开 Safari。
  • tell window 1 意思是告诉当前窗口
  • set URL of current tab to “xxx” 表示将当前 tab 页的 URL 设置为 “xxx” 网址
  • set current tab to (make new tab with properties {URL:“xxx”}) 表示新建一个标签页,并将其 URL 设置为 “xxx” 网址
  • 每一个 tell 对应一个 end tell,tell 中的内容需要保持缩进一致。
  • 这就是 Windows 和 Mac 上各自的脚本工具,熟练运用自动化脚本,可以让电脑更加的智能!

    以上就是教你编写Windows的VBScriptMac的AppleSCript脚本解放双手的详细内容,更多关于Windows的VBScript与Mac的AppleSCrip的资料请关注悠久资源网其它相关文章!

    您可能感兴趣的文章:

    • 在windows 64位操作系统上运行32位的vbscript的方法
    • VBScript 作用 简单说明
    • VBS基础篇 vbscript Sendkeys模拟键盘操作
    • Vbscript写注册表的方法
    • 用vbscript实现在文本文件中搜索两个项

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 VBS 教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手 https://www.u-9.cn/jiaoben/vbscript/9689.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务