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


一ã€�Windows ç¯?—— VBScript

最近��windows 上有一个好玩的东西,��VBScript,�以用�自动执行一些�作�/p>

1�效果图

先�看下最终效果��/p>

以上就是一个简�的 VBS 脚本,�行时自动打开 Chrome �览器,然�自动打开了三个网页:我的�客,github,LeetCode官网�/p>

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

2�VBS 简�/h3>

从�字中�Script �以看出,它是一�脚本语言,所谓脚本,就是用�解放我们�手的,让我们用脚都�以编程�/p>

WeChat Image_20190917173203.gif

——嗯,这段关于脚本的解释纯属å�¹æ°´ï¼Œæ‰‹åŠ¨ç‹—å¤´é˜²æ­¢å°�朋å�‹è¯¯è§£ã€?/p>

其实脚本的本æ„�是剧本,让程åº�按照开å�‘者写好的“剧本”开始它的表演ã€?/p>

VBS 脚本是一�解释型语言,解释型语言的��是它�行的时候会自动给电脑解释代�的��,也就是�用安装任何编译环境,�便咱们用什么软件写都�以,比如记事本�word�Sublime�VSCode 啥的,���存� vbs 文件���击�行�/p>

3�代�实�/h3>

本例代�也很简�,新建一�vbs 文件,�字�便�,比�robot.vbs,编辑如下:

Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run """C:Program Files (x86)GoogleChromeApplicationchrome.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�代�详�/h3>
  1. 对于笔者这样的带有目的性学习的�学者,首尾两行直接记作固定格��/li>
  2. WshShell.Run 用��行 exe 文件,将路径��自己电脑中想��行的软件��,用 三引�""" 的目的是明确告诉编辑器这是一个字符串,�需�转义,防止路径中有需�转义的字符导致程�出错。这里我设置�了 chrome.exe 的�置�/li>
  3. WScript.Sleep 3500 用�设置等待时间�500 的��是让程���3.5秒,���WScript.Sleep 1500 ��,��是让程���1.5 秒。如果你的程��动较慢,�以将等待时间设置长一点�/li>
  4. WshShell.SendKeys 用�模拟键盘输入,引�中的内容就是输入内容。�以看到我先输入了一个网��/li>
  5. WshShell.SendKeys “{ENTER}” 表示输入回车,{ENTER} 是一个特殊字符,本文å�Žé�¢é™„有 VBS 特殊字符表格。这里输入网å�€ä¹‹å�Žè¾“入了两个回车,原因是我这个ä¸�争气的æ�œç‹—输入法在我一å�¯åЍ Chrome 的时候,它就设置æˆ�中文输入,导致第一次回车å�ªæ˜¯æŠŠè‹±æ–‡çš„æ–‡å­—打上去了,第二次回车æ‰�能跳转到这个网站ã€?/li>
  6. 输入了两次回车�,我�让脚本�眠�1.5秒,这行代�完全是为了录制那�gif 时好看一点,�写的�会立�打开三个网站,看�出�次出现的感觉。删了会更快,嗯,我写完这篇文章的时候已�把它删掉了�/li>
  7. WshShell.SendKeys “^t” 表示å�Œæ—¶æŒ‰ä¸‹ Ctrl + T,^表示 Ctrl 键,也属于一个特殊字符,这里çš?t å¿…é¡»è¦�å°�写ï¼�(咱也ä¸�知é�“为什么有这么蠢的语法设计,å�‘了我五分钟找原因)。Ctrl + T æ˜?Chrome 打开新的标签页快æ�·é”®ï¼Œå¦‚果你的快æ�·é”®ä¸�一样,å�¯ä»¥å¯¹ç…§ç‰¹æ®Šå­—符表自行修改ã€?/li>

OK,VBScript 大概就是这样的了。其�VBS 的作用并�仅�于此,它�以用�模拟打开程�,模拟键盘输入,所以�以�出很多好玩的功能。比如笔者的�事写了一个自动连�Cisco 的脚本(�次都�手动输入密���了,现在终于被解放出�了),还�以用�自动登�QQ�微信之类的。感兴趣的朋�们�以自行探索�/p>

对多个程�的�作�以写在�一�vbs 文件里,��在一个程�的自动化脚本执行结��,�次调�WshShell.Run �动其他程�,就�以继续�作其他程�了。笔者现在用的脚本效果有�/p>

  • 1.自动打开 Chrome,并打开三个常用网å�€
  • 2.自动打开 Typora,并输入当å‰�日期生æˆ�标题,这是我用æ�¥æ¯�天记录工作日志çš?/li>
  • 3.å�¯åЍ Android Studio,笔者是一å�?Android developer,这是用æ�¥å·¥ä½œçš„ã€?/li>

还有一些功能涉�工作内容�方便�露,总之,想想�天到公�自己��的�始化工作一键就能完�,是�是有点�激动呢���br />附上笔者现在使用的 vbs 脚本的一部分代��/p>

Set WshShell=WScript.CreateObject("WScript.Shell")
' �动 Chrome,打开常用网� 
WshShell.Run """C:Program Files (x86)GoogleChromeApplicationchrome.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:wareTyporain	ypora.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:projectsgithubDailyNotes"
' 等待以便输入完�
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:wareAndroidStudioinstudio64.exe"""

' 更多�始化功�
' ...
WScript.Quit

5�其他语�/h3>

获�当�日期�/p>

CurrentDate = date()

默认的格�是��年,也�以这样自定义格��/p>

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

其中,CurrentDate 是���,�称�以�便起�code>&�用�连接字符串�/p>

用弹窗弹出字符串

msgbox "字符�quot;

6�附:VBS 特殊字符表格

特殊字符VBS 表示
SHIFT+
CTRL^
ALT%
退格键{BACKSPACE} �{BS} �{BKSP}
BREAK{BREAK}
Delete{Delete} �{DEL}
�下�/td>{DOWN}
�上�/td>{UP}
�左�/td>{LEFT}
���/td>{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 自带的脚本编辑器��使用�/p>

1�效果图

先看效果图:

2�代�实�/h3>

代�很简�,打开 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�代�详�/h3>
  1. AppleScript 的语法比较人性化,就åƒ�å�£è¯­ä¸€æ ·ï¼Œtell application “Safari” 表示告诉应用 Safariã€?/li>
  2. activate ��是激活,也就是打开 Safari�/li>
  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 中的内容需���缩进一致�/li>

这就�Windows �Mac 上�自的脚本工具,熟练�用自动化脚本,�以让电脑更加的智能�

以上就是教你编写Windows的VBScript与Mac的AppleSCript脚本解放�手的详细内容,更多关于Windows的VBScript与Mac的AppleSCrip的资料请关注脚本之家其它相关文章�/p>