Multi Commander整合外部執行檔Fastcopy的方法

平常較大的檔案要拷貝到NAS我大部份都是使用Fastcopy,以下示範在Multi Commander裡要如何設置好叫用Fastcopy的方法。一樣是使用自訂命令(User Defined Commands),但快速拷貝使用外部命令(External),快速搬移則使用MultiScript。

Fastcopy命令列參數

要讓檔案管理工具叫用Fastcopy,也就是以命令列的方式執行fastcopy.exe即可。我經常使用的Fastcopy命令列參數有下列幾個:

參數 說明 範例
/cmd force_copy (拷貝覆蓋),move (搬移),delete (刪除) /cmd=force_copy,/cmd=move
/auto_close 執行完畢後自動關閉視窗
/estimate 顯示執行進度
/bufsize 讀寫緩衝區大小(單位:MB) /bufsize=256
/speed 執行速度控制 /speed=full
/to 目標資料夾 /to=n:\backup

快速拷貝

點擊功能表【Configuration】→【User Defined Commands】,按〔New〕後輸入下列欄位:
* Name:輸入「FastCopy」
* Command type:選取「External」
* External Program:

 
  "c:\program files\fastcopy\fastcopy.exe" /cmd=force_copy /estimate /bufsize=256 /speed=full "${sourcefocuspath}"  /to="${targetpath}"
  
  • Options:指定執行時的額外參數,會自動在External Program第一行插入選項內容
  • 指定執行此命令的方法,Hotkey、Menu、Alias都可設定,最後按〔Save〕儲存
    mc with fastcopy

External Program裡的${sourcefocuspath}、${targetpath}是Multi Commander的系統變數,稱為Multi Tags,方便用來指定來源路徑與目的路徑。要注意 $ 符號的寫法,Multi Tags在字串裡使用時其 $ 是在大括號外面,而在MultiScript裡字串的的變數則要寫成{$變數},例如:{$sPath}(其實 $ 是變數的開頭)。二者寫法很類似,要小心分辨。

快速搬移

用External可以很快設定好要執行的外部執行檔,但很可惜目前沒有表示所有選取檔案的Multi Tags,因此即使選取了多個檔案,上列命令只會拷貝第一個選取檔案,要能處理多個檔案必須透過撰寫MultiScript來達成。步驟如下:

點擊功能表【Configuration】→【User Defined Commands】,按〔New〕後輸入下列欄位:
* Name:輸入「FastCopy Move」
* Command type:選取「Multi-Script」
* 輸入框輸入下列腳本程式碼:

@var $aFiles = GetSelectedPaths();
@var $sTargetPath = GetTargetPath();
@var $iCount = arrayCount($aFiles);
@var $i;
@var $sFileName;
@var $sFileNames;

$sFileNames = "";
for ($i=0; $i < $iCount; $i++)
{
  $sFileName = $aFiles[$i];
  $sFileNames += """+ $sFileName + "" ";
}
@var $iLen = StrLen($sFileNames);
if ($iLen == 0)
{
  MessageBox("ERROR", "No file selected.", 1);
}
else
{
  //MessageBox("fn", $sFileNames, 1);
  @var $sOption = "/cmd=move /estimate /bufsize=256 /speed=full " + $sFileNames + " /to="" + $sTargetPath + """;
  //MessageBox("option", $sOption, 1);
  MC.Run CMD="C:\\Program Files\\fastcopy\\FastCopy.exe {$sOption}"
  //MC.Run CMD="C:\\Program Files\\fastcopy\\FastCopy.exe" ARG="{$sOption}"  // cannot work!
}
  
  • 指定執行此命令的方法,Hotkey、Menu、Alias都可設定,最後按〔Save〕儲存

簡單幾行程式就能點選檔案,再以Fastcopy來快速搬移到目的資料夾了。

FreeCommander XE的寫法

順道提一下FreeCommander XE的整合步驟:

  • 功能表【Extras】→【Favorite tools】→【Favorite tools edit】,新增一個項目
  • 輸入下列各欄位:
    • Name:Fastcopy Move
    • Program:C:\Program Files\FastCopy\FastCopy.exe
    • Start dolder:%ActivDir%
    • Parameter:/cmd=move /estimate /auto_close /bufsize=256 %ActivSel% /to=%InactivDir%
      freecommander extras


##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *