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

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

一、Windows 篇 —— VBScript

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

1、效果图

先来看下最终效果吧!

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

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

2、VBS 简介

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

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

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

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、代码详解

  1. 对于笔者这样的带有目的性学习的初学者,首尾两行直接记作固定格式。
  2. WshShell.Run 用来运行 exe 文件,将路径换成自己电脑中想要运行的软件即可,用 三引号 """ 的目的是明确告诉编辑器这是一个字符串,不需要转义,防止路径中有需要转义的字符导致程序出错。这里我设置成了 chrome.exe 的位置。
  3. WScript.Sleep 3500 用来设置等待时间,3500 的意思是让程序睡眠 3.5秒,后面的 WScript.Sleep 1500 同理,意思是让程序睡眠 1.5 秒。如果你的程序启动较慢,可以将等待时间设置长一点。
  4. WshShell.SendKeys 用来模拟键盘输入,引号中的内容就是输入内容。可以看到我先输入了一个网址。
  5. WshShell.SendKeys “{ENTER}” 表示输入回车,{ENTER} 是一个特殊字符,本文后面附有 VBS 特殊字符表格。这里输入网址之后输入了两个回车,原因是我这个不争气的搜狗输入法在我一启动 Chrome 的时候,它就设置成中文输入,导致第一次回车只是把英文的文字打上去了,第二次回车才能跳转到这个网站。
  6. 输入了两次回车后,我又让脚本睡眠了 1.5秒,这行代码完全是为了录制那个 gif 时好看一点,不写的话会立即打开三个网站,看不出渐次出现的感觉。删了会更快,嗯,我写完这篇文章的时候已经把它删掉了。
  7. 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、效果图

先看效果图:

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、代码详解

  1. AppleScript 的语法比较人性化,就像口语一样,tell application “Safari” 表示告诉应用 Safari。
  2. activate 意思是激活,也就是打开 Safari。
  3. tell window 1 意思是告诉当前窗口
  4. set URL of current tab to “xxx” 表示将当前 tab 页的 URL 设置为 “xxx” 网址
  5. set current tab to (make new tab with properties {URL:“xxx”}) 表示新建一个标签页,并将其 URL 设置为 “xxx” 网址
  6. 每一个 tell 对应一个 end tell,tell 中的内容需要保持缩进一致。

这就是 Windows 和 Mac 上各自的脚本工具,熟练运用自动化脚本,可以让电脑更加的智能!

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

(0)

相关推荐

  • VBS基础篇 vbscript Sendkeys模拟键盘操作

    模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行 其使用格式为:object.SendKeys(string) object:表示WshShell对象 string:表示要发送的按键指令字符串,需要放在英文双引号中 基本键 每个按键由一个或多个字符表示. 为了指定单一键盘字符,必须按字符本身的键.例如,为了表示字母 A,可以用 "A" 为了表示多个字符,就必须在字符后面直接加上另一个字符.例如,要表示 A.B 及 C,可用 "ABC"

  • VBScript 作用 简单说明

    有事没事用VBS采集别人网站上的部分或全部数据进行分析,然后写入数据库或存到文本文件里,有时还会用VBScript做一些移动光标及输入的操作,比如批量添加远程桌面,有时还会用VBScript还管理Windows服务器,如设置IIS,还有做一些定时提醒工具,多久执行一次,然后用声音控件提醒,很好用.... 1. 计算 2. 处理文件和文件夹 3. 管理Windows 4. 处理Word, Excel, PowerPoint等Office文档 5. 嵌入网页,驱动dHTML 6. 编写HTTP通信

  • 在windows 64位操作系统上运行32位的vbscript的方法

    今天在2008 r2 64位的服务器系统上,运行vbs文件的时候如下提示 --------------------------- Windows Script Host --------------------------- 脚本: C:\Users\Administrator\Desktop\vbs_cf.vbs 行: 10 字符: 1 错误: 未找到提供程序.该程序可能未正确安装. 代码: 800A0E7A 源: ADODB.Connection 在2003上运行正常的程序,为什么在08上不

  • Vbscript写注册表的方法

    分类:程序 早些年用过DOS系统的用户都知道,MS-DOS操作系统允许普通用户编写批处理文件来实现简单的编程.它有效地简化了我们的工作,带给我们许多方便.当时甚至出现了一些专门编写批处理文件的程序员呢. 事实上,操作系统除了提供易于操作的使用界面外,还应当有一套内建的Script(脚本)语言才算完整.从某种角度来说,批处理文件可以说就是MS-DOS下的脚本语言.到了Windows时代,虽然Windows系统仍然保留了批处理,但是批处理在Windows中就显得功能过于简单,无法满足用户的需要了--

  • 用vbscript实现在文本文件中搜索两个项

    问: 您好,脚本专家! 您曾经介绍过如何在文本文件中搜索单个词或短语,但如何在文本文件中搜索两个短语呢? 我想知道文件中是否包含 Windows 2000 或 Windows XP. -- JR 答: 您好,JR.您知道,让脚本专家去做一件事情就已经够困难的了:可见让他们去做两件事情几乎是不可能的. 但我们要告诉您的是: 只要您不介意我们向您介绍一种简单的方法来在文本文件中搜索多个项,我们就会向您介绍如何在文本文件中搜索多个项. 注意. 为什么称之为"简单的方法"呢? 我们不打算费神设

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

    目录 一.Windows 篇 —— VBScript 1.效果图 2.VBS 简介 3.代码实现 4.代码详解 5.其他语法 6.附:VBS 特殊字符表格 二.Mac 篇 —— AppleScript 1.效果图 2.代码实现 3.代码详解 一.Windows 篇 —— VBScript 最近发现 windows 上有一个好玩的东西,叫做 VBScript,可以用来自动执行一些操作. 1.效果图 先来看下最终效果吧! 以上就是一个简单的 VBS 脚本,运行时自动打开 Chrome 浏览器,然后自

  • 教你编写bat脚本Windows批处理

    目录 常见用途 bat命令速查 常用参数 echo 注释 Rem 使用::声明 dir :获取目录内容 > :将输出重定向到文件 变量 命令行参数 set命令 字符串 数值 局部变量 vs 全局变量 环境变量输出 字符串 创建 空字符串 字符串拼接 字符串长度 转int 截取 右对齐 删除字符串 删除两端(保留中间) 删除空格:= 替换 数组 创建 访问 修改 迭代 数组长度 结构体 if语句 if defined :变量是否存在 if exists:文件是否存在 if errorlevel:测

  • 二十九、教你备份与恢复Windows 2000注册表

    二十九.教你备份与恢复Windows 2000注册表  Windows 2000将它的配置信息存储在注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注

  • 手把手教你安装Windows版本的Tensorflow

    一:安装Anaconda和Tensorflow 步骤: 1:从官方网站下载Anaconda https://www.anaconda.com/download/    注意自己电脑版本是32位还是64位.  2:进行软件安装(这个和普通的没什么特别区别) 3:安装完成Anaconda之后进行环境变量的测试 进入到windows中的命令模式: (1)检测anaconda环境是否安装成功:conda --version (2)检测目前安装了哪些环境变量:conda info --envs (3)对于

  • C语言杨氏矩阵实例教你编写

    目录 一.杨氏矩阵是什么 二.编写步骤 三.程序的改进 四.总结 一.杨氏矩阵是什么 一个数字矩阵,矩阵的每一行从左到右一次递增,矩阵从上到下递增,在这样的矩阵中查找一个数字是否存在.时间复杂度小于O(N). 二.编写步骤 1.首先给出一个三乘三的矩阵,我们想找到数字7是否在这个数组之中,如图所示. 2. 我们给出的方法是一种从右上角开始,另一种是从左下角开始.比如从右上角开始,编写一个函数. 3. 函数的编写.从右上角开始,将右上角数字与数字7比较,如果数字7大于右上角的数字(3)(因为第一行

  • 教你编写SQLMap的Tamper脚本过狗

    目录 测试环境 最新版某狗 测试方法 bypass and order by union select 加个换行试试 获取表字段 编写tamper 测试环境 最新版某狗 测试方法 安全狗其实是比较好绕的WAF,绕过方法很多,但这里我们就用一种:注释混淆 一招鲜吃遍天 注释混淆,其实就是在敏感位置添加垃圾字符注释,常用的垃圾字符有/.!.*.%等 这里再解释一下内联注释,因为后面要用到: MySQL内联注释: /*!xxxxxxx*/ !后面的语句会当作SQL语句直接执行 但是如果!后面跟着MyS

  • script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本

    我们提供了一系列工具让您除了手动以 复制/粘贴 的方式部署和更新 hosts 之外,有一种方便.一键式的方式来应用我们的 hosts . 我们现有的工具可以在下列平台上工作: Microsoft Windows (.bat script; Qt GUI tool; console (service type) tool) 另外,我们还推荐使用跨平台的 Hozz 来管理.自动更新 hosts . 目前,我们共有: Hozz: 跨平台的 hosts 自动 管理/更新 工具.是 @ppoffice 的

  • 实现Windows下设置定时任务来运行python脚本

    1. 自己用python写了一个签到脚本 经过测试已经可以成功打卡,于是研究了一下windows定时运行程序 2. 创建定时任务 2.1 打开"控制面板 "–>"系统和安全"–>"管理工具"–>"计划任务" 如图 2.2 打开"计划任务",如图,点击"创建基本任务" 2.3 给定时任务命名,点击下一步 2.4 选择脚本执行的时间,以每天执行为例,如图,点击下一步 2.5

  • C#编写Windows服务实例代码

    Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用.还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务. 使用Microsoft Visual Studio2012可以很方便的创建一个Windo

  • 深入详解C编写Windows服务程序的五个步骤

    Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务.为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择.本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件.最后,你可以用所学知识编写自己的 Windows 服务. 当初我写第一个NT 服务时,我到 MSDN 上找例子.在那里我找到了一篇 Nigel Thompson 写的文章:"Creating a Simple Win32 Service in C++&

随机推荐