假设我有一堆带有水果名称的文件名。我想基于一个充满参考文件的文件夹自动重命名它们(虚拟txt文件包含水果的名称,句点,然后是甜点的名称)。
apple.tart,grape.jelly,kiwi.cake,mango.icecream,banana.pudding,cherry.cobbler等
我想选择要重命名的所有文件,然后将它们拖到我的脚本上。
如果循环中的文件已包含某个组合,例如“cherry.cobbler”,我只想丢弃该虚拟文件,并且该文件不应重命名为“cherry.cobbler.cobbler”< / p>
如果循环中的文件包含单词“kiwi”,我希望将其更改为包含“kiwi.cake”。
如果循环中的文件包含未列出的水果,我想要添加一个catchall字符串。所以“金橘”会变成“kumquat.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
}
答案 0 :(得分:1)
将条件3置于内循环之外,似乎可以正常工作