Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

使用Multi-Commander來簡化免空檔案的繁瑣操作

$
0
0

最近由各大論壇透過免空分享下載了一些影片,最常使用到的下載軟體是JDwonloader 2MegaDownloaderSmartGetuTorent等軟體,有時自動解壓縮失敗,就必須手動解壓縮,接著要把影片檔複製到媒體播放機的硬碟裡(透過網路拷貝),為了減少操作程序而做了一些自動化(或半自動化)的控制,在此分享給需要的網友們。

雙面板檔案工具Multi-Commander

我主要的操作工具是雙面板操作介面的擴充彈性十足的檔案管理工具:Multi Commander,解壓縮用的是7-Zip的命令列指令7z.exe,檔案拷貝使用的是FastCopy(參考:Multi Commander整合外部執行檔Fastcopy的方法)。

7-Zip解壓縮批次檔

解壓縮以Multi-Commander的批次檔擴充來撰寫,操作步驟如下:

  1. 功能表 【組態】→【使用者定義的命令】
  2. 按最左側的新增按鈕增加一個使用者命令,名稱輸入7-zip,命令類型選用【Batch Script(.BAT)】,表示等會輸入的命令內容格式是Windows的批次檔格式,內碼頁記得改為950才能正確顯示中文,最後在輸入框裡輸入批次檔內容。
  3. 批次檔內容如下。7z.exe的參數是:
  • x: 解壓縮(eXtract)
  • -o.: 輸出資料夾是來源面板的路徑
  • -r: 連子目錄一起解開
  • -y: 預設回覆 Yes
  • ${sourthpath}: 這是Multi-Commander稱為MultiTags的系統變數,能取出來源面板的路徑
d:\util\7z.exe x -o. -r -y ${sourthpath}

7-zip batch

使用者命令視窗還能把新建立的命令設定熱鍵和加到功能表裡。加功能表的步驟很簡單,選好命令再按中間的【–>】就可以了。 add to menu

7-Zip使用者命令的使用方法:點擊要操作的面板使之成為來源面板,再按下設定好的熱鍵或由功能表執行,Multi-Commander會開啟命令提示字元(DOS視窗),需要輸入密碼時再貼上剪貼簿裡的密碼後按Enter,面板裡的所有壓縮檔就會全部解在該目錄裡。

用FastCopy逐一搬移每個影片檔

來源面板裡的檔案可能有很多個,若全部加到一個FastCopy的Job裡,有可能因為網路問題等因素而拷貝失敗,因此我採用的是每個檔建立一個Job,因為動作比較複雜一些而無法使用批次檔來做,而以Multi-Script來寫,此命令命名為FastMove all。只要在新增命令後把命令類型選用Multi-Script就能以之來撰寫功能。

fastcopy

FastMove all的內容如下。首先以 GetSourceSelectedPaths()取得被選取了的檔名陣列,最後再用for-loop逐一執行FastCopy.exe。

@var $aFiles = GetSourceSelectedPaths();
@var $iCount = arrayCount($aFiles);
if ($iCount == 0)
{
  MessageBox("ERROR", "No file selected.", 1);
}
@var $sTargetPath = GetTargetPath();
@var $i;
@var $sFileName;
@var $sCmd;
$sFileNames = "";
@var $sOption = "/cmd=move /estimate /bufsize=128 /auto_close /speed=full ";  
// + $sFileNames + " /to=\"" + $sTargetPath + "\"";
for ($i=0; $i < $iCount; $i++)
{
  $sFileName = "\"" + $aFiles[$i] + "\"";
  $sCmd = "d:\\util\\fastcopy\\FastCopy.exe " + $sOption + $sFileName + " /to=\"" + $sTargetPath + "\"";
  //MessageBox("INFO", "cmd=" + $sCmd, 1);
  MC.Run CMD={$sCmd};
}
MC.Explorer.Deselect

FastMove all是針對選取檔案來操作,因此當來源面板裡同時存在壓縮檔、影片檔時,先按+號輸入 *.mp4 (來源面板裡的影片格式副檔名)後再按指派的FastMove all熱鍵或由功能表執行就能建立多個FastCopy move Job。

##

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


Viewing all articles
Browse latest Browse all 897

Trending Articles