循环内循环 - 检测autohotkey中的循环结束

时间:2013-02-28 16:10:32

标签: autohotkey nested-loops

假设我有一堆带有水果名称的文件名。我想基于一个充满参考文件的文件夹自动重命名它们(虚拟txt文件包含水果的名称,句点,然后是甜点的名称)。

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

我想选择要重命名的所有文件,然后将它们拖到我的脚本上。

  1. 如果循环中的文件已包含某个组合,例如“cherry.cobbler”,我只想丢弃该虚拟文件,并且该文件不应重命名为“cherry.cobbler.cobbler”< / p>

  2. 如果循环中的文件包含单词“kiwi”,我希望将其更改为包含“kiwi.cake”。

  3. 如果循环中的文件包含未列出的水果,我想要添加一个catchall字符串。所以“金橘”会变成“kumquat.nodessert”

  4. 条件#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
        }
    

1 个答案:

答案 0 :(得分:1)

将条件3置于内循环之外,似乎可以正常工作