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 表格並保存為帶當前日期時間的檔名。
腳本命令參考
有關所有腳本命令的完整參考,請參閱幫助文件。
腳本資源
以下是您可以找到免費腳本使用和學習的地方: