2013-02-28 157 views
0

假設我有一堆文件名,其中包含水果名稱。我想根據充滿參考文件的文件夾(包含水果名稱,句號,甜點名稱的虛擬文本文件)自動重命名它們。循環內循環 - 在autohotkey中檢測循環結束

apple.tart,grape.jelly,kiwi.cake,mango.icecream,banana.pudding,cherry.cobbler等

我要選擇所有文件進行重命名,並將其拖至我的腳本。

  1. 如果在迴路中的文件已經包含了一定的組合,如「cherry.cobbler」,我只是想在dummyfile被丟棄,不應將文件改名爲「cherry.cobbler.cobbler」

  2. 如果循環中的文件包含單詞「kiwi」,我希望它被更改爲包含「kiwi.cake」。

  3. 如果循環中的文件包含未列出的水果,我想要添加一個catchall字符串。所以「金橘」會成爲「金橘.nodessert」

這是條件#3引起我的麻煩。我似乎無法提供正確的語法來指定何時檢查最後一個虛擬文件。

這裏的一些僞代碼內環外

Loop %0% 
{ 
    Path := %A_Index% 
    Loop %Path%, 1 
    LongPath = %A_LoopFileLongPath%  
    SplitPath LongPath, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive 


    Loop thru folder of fruit combos 
     { 
     Stringsplit filenames from fruit-combos folder into %fruit% and %dessert% 

     If OutNameNoExt contains %fruit%.%dessert% 
      { 
      FileDelete fruit.combo dummyfile 
      continue; skip to next file to rename 
      ) 

     If OutNameNoExt contains %fruit% 
      { 
      FileDelete fruit.combo dummyfile 
      StringReplace %fruit% with %fruit%.%dessert% 
      continue; skip to next file to rename 
      ) 

     If OutNameNoExt not contains fruit.combo AND all dummy files have been checked 
      { 
      StringReplace %fruit% with %fruit%.nodessert 
      ) 
     } 
    ; proceed with next selected file 
    } 

回答