XYplorer 脚本编程(自版本 7.00 引入)提供了终极的文件管理效率。编写您自己的自定义命令,将它们组合成脚本,封装到 XY Script 文件 (XYS) 或用户自定义命令中,然后一键或一键执行。还能更好吗?当然!与同事分享脚本或从网上下载:只需将脚本文件放入应用程序文件夹,即可获得全新的插件命令。
毫无疑问,脚本编程是一项高级功能,只有在您花时间深入探索其可能性时才能获得回报。不过,您会发现它根本不是火箭科学。
脚本能为我做什么?
在我们深入之前,以下是脚本能为您做的一些真正精彩的事情:
- 一键创建一个包含您当前文件管理器中查看的文件列表的完全格式化的 HTML 文档。
- 一键在 IMDB(互联网电影数据库)中查找当前选中文件的标题。
- 一键转换当前选中文本文件中的所有元音变音。
- 一键将数码相机 SD 卡的内容传输到以当月命名的新文件夹。
- 一键将去年所有 .doc 文件备份到名为 doc_backup_07.zip 的压缩包。
- 无缝集成 TeraCopy / FastCopy 等工具。
- 无需浏览器即可从互联网下载特定文件。
- 打开剪贴板中的第一个 URL。
- 将计算机上的任何文件复制到"这里"(当前工作目录)。
脚本速成课程
让我们做一些简单的热身练习来入门:
- 选择菜单 脚本 | 尝试脚本...
- 在编辑框中粘贴
msg "Hello world!"; - 点击确定。
您现在应该看到一个"Hello world!"消息框。恭喜,您刚刚编写了第一个 XYplorer 脚本!
现在来点更有趣的:
- 尝试
msg "%temp%";— 您应该看到一个显示 TEMP 路径的消息框。%temp%是标准的 Windows 环境变量。 - 尝试
msg "XYplorer.exe runs from <xypath>";—<xypath>是 XYplorer 的原生变量。 - 尝试
msg "Press OK to copy the time!"; copytext "<date hh:nn:ss>";— 确认消息框后,当前时间将被复制到剪贴板。 - 尝试
$a = "<curpath>"; msg $a;— 您应该看到当前路径。
到目前为止您看到的 XY 脚本特点是:
- 命令由函数名(如 msg 或 copytext)和参数组成。
- 参数可以包含字面值(如
"Hello!")和变量(如%temp%(环境)、<curpath>(XYplorer)或$a(用户定义))。 - 参数可以有多个部分,用点号(.)连接。
- 命令可以有多个参数,用逗号(,)分隔。
- 脚本可以有多个命令,用分号(;)分隔。
将脚本放在哪里
当然,"尝试脚本..."对话框只是用来练习和调试的。对于日常使用,我们需要更好的方式。
让我们从快速脚本开始:在地址栏中输入 ::msg "Hello world!"; 并按 Enter。您应该看到一个"Hello world!"消息框。
如您所见,快速脚本意味着:脚本在前缀 "::" 后可以通过 XYplorer 中能处理位置的任何界面直接(即快速)执行:地址栏、转到、收藏夹、目录面板等。
对于鼠标用户,目录面板是放脚本的好地方。使用 "::" 前缀,脚本可以直接输入到目录元素的位置字段中。一键即可执行。
对于键盘爱好者,有UDC(用户自定义命令)。使用 "::" 前缀,脚本可以输入到 UDC 转到项的位置字段中,然后为其分配键盘快捷键。
用户菜单显示新添加的命令。
当然,您不必滥用转到 UDC 来运行脚本。还有 UDC 运行脚本,它接受没有 "::" 前缀的脚本。运行脚本还可以处理更高级的内容,如多行脚本和多脚本:
goto "Desktop|";
// sort by modified date, descending
sortby "m", "d";
// select first
sel 1;
focus "List";
上述脚本的截图。
单步执行脚本
假设您有一个旧脚本 #230;,但忘了 #230 是什么。怎么办?进入单步模式:
- 打开脚本菜单并勾选"单步模式"。
- 执行您的神秘脚本。
脚本菜单,单步模式已勾选。
将弹出一个对话框告诉您即将发生什么。您可以决定是执行命令、跳过它还是中止整个脚本。单步模式下您是安全的。编写或调试脚本时强烈推荐!
还有一个用于切换单步模式的工具栏按钮。按下时(单步开启)其颜色变为红色以清楚显示当前状态。
单步模式关闭。
单步模式开启。
XYplorer 脚本文件
我们说的是由文本文件定义的用户自定义弹出菜单。来做一个:
- 在任意编辑器中创建一个新文本文件。
- 粘贴以下内容:
// some little test scripts
"Go to C:\"
goto "C:\"
"Go to System Folder"
goto "%winsysdir%"
"Go to XYplorer Folder"
goto "<xypath>"
- 将文件保存为"test.xys"(XYplorer 脚本文件)到 XYplorer 的应用程序数据路径。
- 在 XYplorer 中,点击 脚本 | 加载脚本文件... 菜单并打开 test.xys。
以下菜单应出现在光标处。
脚本文件基本上是一个脚本库。它只是一个简单的文本文件,可以包含一个或多个脚本。您可以直接调用其中一个脚本,或者只是加载整个文件——XY 将根据文件中的脚本创建菜单并弹出。
XYplorer 脚本文件的语法规则
- 以
//开头的行被忽略,可用于注释。 - 脚本可以跨多行。只需在第一行之后的行缩进任意数量的空格或制表符。
- 一个脚本文件中可以有多个脚本。加载脚本文件将显示一个按标题列出所有脚本的菜单。
- 要设置脚本标题,只需在脚本前加上所需标题并用引号括起来。
- 可以使用 sub 命令在脚本文件中运行同一文件内的其他脚本。
- 可以通过在名称前加下划线(_)来隐藏脚本。
标签
您可以使用标签直接执行文件中的脚本,绕过弹出菜单。标签附加到标题后,用" : "(空格-冒号-空格)分隔:
// some little test scripts, using labels
"Go to C:\ : croot"
goto "C:\"
"Go to System Folder : system"
goto "%winsysdir%"
"Go to XYplorer Folder : xy"
goto "<xypath>"
如果上述内容保存在名为"test.xys"的文件中,以下命令将直接带您到系统文件夹:load "test.xys","system"。
用户自定义变量
随着您在脚本编写上的进步,您很快会感到对变量的需求。XYplorer 允许您使用 set、input、replace 等命令定义和使用任意数量的变量。
脚本 $a = "Hi!"; msg $a; 将定义新变量 $a 并将字符串"Hi!"赋值给它;然后消息框显示"Hi!"。
变量在后续命令的参数中出现时会被解析,即使它们出现在引号字符串中。例如:
$name = "Ted"; msg "Hi, I'm uncle $name!";
将显示消息"Hi, I'm uncle Ted!"。
变量必须遵循以下规则:
- 变量用美元符号($)后跟变量名表示。
- 名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。
- 变量名区分大小写。变量的作用域和生命周期从定义它的脚本开始到结束。
示例脚本
backupto "D:\Archives\XY\<srcver>_<date yyyy-mm-dd>",
"<xypath>\XYplorer.exe";
这个小脚本将当前 XYplorer.exe 备份到 D:\Archives\XY\6.80.0080_2008-02-17。
$q = input("Query to Replace:");
$t = input("Text to Replace Query With:");
// rename of type search & replace, case-insensitive, with preview
rename "s", "$q/$t", "p";
豪华批量重命名。此脚本将要求您输入两个字符串,然后在所有当前选中的文件名中用一个替换另一个。
使用脚本生成报告
writefile("Report_<date yyyymmdd_hhnnss>.htm",
report("<tr><td>{Name}</td>
<td align=right>{Size B} {dir [DIR]|bytes|}</td>
<td>{Created}</td><td>{Modified}</td></tr><crlf>", ,
"<table cellpadding=4>", "</table>"));
生成当前文件夹的 HTML 表格并保存为带当前日期时间的文件名。
脚本命令参考
有关所有脚本命令的完整参考,请参阅帮助文件。
脚本资源
以下是您可以找到免费脚本使用和学习的地方: