俞木发
日常很多操作,我们都是按部就班地执行,这样不仅费时而且费力。其实Windows下的许多任务可以批量操作,这样我们就可以高效、快捷地完成很多的操作。
执行批量操作,利用Windows自身的批处理功能就可以实现,当然因为是字符界面,不是很好用,所以可以通过Windows批处理调试器之类的工具进行辅助。除了Windows自身的工具,第三方开发的一些宏工具也很强大。
就地取材 用好Windows批处理
系统自带的批处理是一个多命令自动执行脚本,只要编辑好特定的批处理,它就可以帮助我们执行很多的操作。以Windows 7(及以上版本)系统为例,很多系统文件都被赋予严格的权限,如果要对某个系统文件进行改名或者编辑等操作,常规的操作是要先取得文件的所有权,接着再赋予当前管理员账户对该文件的完全控制权,这样才能完成上述的操作。比如,为了方便访问一些网站,我们经常要对C:\Windows\System32\drivers\etc\hosts进行编辑,该文件默认所有者为System账户,当前管理员账户没有编辑权限,而且没有对“C:\Windows\System32\drivers”写入权限(图1)。这就需要一步步解锁权限。对于这类的操作,借助批处理即可快速完成取得所有权和写入控制权的更改,让复杂操作变简单。示例代码如下(rem为注释无需输入):
rem 运行NotePad同时打开指定的系统文件,在批处理中如果文件路径包含空格,一定要用半角的""括起来
notepad "C:\Windows\System32\drivers\etc\hosts"
rem 赋予指定文件(夹)所有者为管理员组
takeown /f C:\Windows\System32\drivers\etc\hosts /a
rem 赋予指定文件(夹)完全读取权限到当前操作用户,其中yumufa为当前登录用户名,“:F”为完全控制权限
icacls C:\Windows\System32\drivers\etc\hosts /grant yumufan:F
将上述批处理保存为Aa.bat批处理文件并放置在桌面,以后只要右击选择“以管理员身份运行”,运行完成后记事本会自动打开指定的文件,并可以直接对该文件进行编辑和保存了(图2)。
继续打开C:\Windows\System32\drivers\etc\hosts的“属性→安全→高级”,可以看到该文件的所有者已经被更改为当前管理员组(默认为System),同时切换到“安全→编辑”,在用户列表中则可以看到当前登录账户已经获取到完全控制权限了(图3、图4)。
因为严格的权限管理机制可以很好地保护系统,因此对系统文件的权限进行更改,完成文件的编辑后建议恢复原来的权限,恢复的操作也很简单(只是操作前一定要记住原来文件的所有者和权限设置)。比如需要恢复Hosts文件所有者为System账户,可进入文件“属性→高级→编辑→所有者”,将所有者重新更改为System即可。需要注意的是,如果是恢复为TrustedInstaller,需要“NT SERVICE\TrustedInstaller”才可以添加(图5)。
完成添加延时语句后,现在在原来批处理中就会添加“ping 127.0.0.1 -n 4”语句。如此一来,即使是新手也可以非常方便地对批处理进行编辑和调试(图6)。
小 提 示
系统自带的批处理命令还有很多,我们既可以直接像上面实例一样使用类似Takeown、Icacls一样的命令行制作批处理,比如喜欢一键备份的朋友可以借助Dism命令制作备份/还原脚本,ADSL用户则可以借助Rasdial实现一键自动拨号。此外,还可以利用常见的GUI程序,如文件管理器、记事本等生成脚本,比如C:\Recovery是系统隐藏的目录,为了方便自己访问,可以制作一个批处理(代码“explorer.exe C:\Recovery”)即可一键打开。
扩展阅读
一般用户对批处理语法并不熟悉,为了方便对自己制作的批处理进行编辑或调试,可以辅助使用“iBAT 批处理编辑工具”(下载地址:tinyurl.com/o7gsrnh),启动程序后导入需要调试的批处理进行编译即可。该程序还自带常见的语法命令,比如对于上述批处理,如果Hosts文件较大,就可以在第一行语句后添加延时命令,以方便后续程序的启动,此时可点击右侧窗格的“ping 延时”,在打开的窗口中选择延时的时间,点击“输入”即可。它使用所见即所得的方式,方便我们自行添加语法命令(图7)。
Windows批处理“外援”更好用
系统自带的批处理编写起来需要一定的电脑知识,对于很多小白来说,网上已经有许多现成的快捷工具,这样我们只要实行“拿来主义”即可快捷执行很多的操作。这里以AutoHotkey(下载地址:www.autohotkey.com)扩展系统应用为例。
AutoHotkey既支持常见的编程语法,又可通过录制屏幕操作生成宏。对于有一定编程知识的朋友来说,可以自行使用记事本编制批处理脚本。比如为了工作方便,很多朋友喜欢将常用的程序都设置为自启动,但是对于配置较低的电脑,在进入桌面时各种程序一起启动很容易造成桌面假死。现在借助AutoHotkey即可轻松安排各个程序按顺序启动。
首先启动记事本输入下列的代码(分号“;”后面为注释,可以不用输入):
run "C:\Program Files\Microsoft Office\EXCEL.EXE" ;启动指定程序,这里需要输入程序具体路径,如果路径包含空格,请用半角双引号括起来
sleep, 5000 ;延迟5秒启动下一个程序
run 下一个程序具体路径
sleep, 5000
ExitApp ;退出程序
完成代码z编辑后将其保存为Run.ahk放置在C:\Users\yumufa\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup(yumufa为本例的登录用户)下,这样每次进入桌面后,上述设置的自启动程序就会每隔5秒依次启动了(图8)。
对于电脑小白来说,如果不会编辑脚本,那么还可以直接利用AutoHotkey来录制操作脚本。比如现在很多在外求学的同学们喜欢使用QQ和家中的老爸、老妈们视频聊天,不过对于电脑水平不高的老爸来说,视频聊天的操作还是略显复杂。借助AutoHotkey就可以录制一个实现自动视频聊天的脚本了。
首先在老爸的电脑QQ(可以通过远程协助方法实现)的好友列表中找到自己的账号(假设昵称为“儿子”),再将其拖到桌面上生成快捷方式,接着右击快捷方式,在快捷键设置框中将F2设置为快捷键,以后老爸按下F2键(需要将QQ设置为记住密码自动登录)即可启动和我们的对话(图9)。
接着启动AutoHotkey中的AutoScriptWriter.exe组件,单击Autohotkey界面的“Arecord”按钮开始录制屏幕操作,按提示依次执行下列的操作:
按下F2(这样会自动登录QQ并打开老爸和“儿子”QQ的对话框)→将鼠标移动到QQ对话框→点击开始视频对话按钮→打开视频对话窗口后结束AutoScriptWriter.exe的录制(图10)。
停止脚本的录制后,返回AutoScriptWriter.exe窗口,此时,我们就可以看到录制的脚本了。其中Send表示发送的按键,其他语句则是具体操作(包括活动窗口和鼠标的点击),点击“SAVE”将其保存为Aa.ahk在桌面备用(图11)。
因为上述代码是连贯运行操作,在实际使用中我们还需要根据实际情况对代码加以修改。比如默认情况下按下F2键后会自动启动QQ,因此需要为启动QQ预留启动时间,这样才会打开视频对话窗口。使用记事本打开Aa.ahk,按提示在“Send,{F2}”代码后添加“Sleep,5000”(单位为毫秒,表示延迟5秒),这样当老爸按下F2键后,5秒后才会执行下一步操作(等待QQ完全启动),其他代码请自行修改(图12)。
现在测试上述代码看看能否正常运行,如果无误再运行Autohotkey的“Convert .ahk to .exe”组件,导入Aa.ahk,点击“Convert”,生成Aa.exe放置在桌面备用(图13)。
操作同上,再为Aa.exe创建一个快捷方式,比如赋予快捷键为F3键,这样以后老爸开机以后只要按下F3键,他的电脑就会自动向我们的QQ发送视频对话,是不是更方便老爸老妈们的操作了呢?
小 提 示
AHK可以录制很多操作,而且可以生成可执行EXE文件(这样可以脱离Autohotkey独立运行),因此大家可以根据自己的需要录制更多的快捷操作。