有没有办法在文件名中移动字符串? (视觉基础)

Is there a way to move strings around in filenames? (VisualBasic)

所以我的上下文是我有多个文件夹,里面装满了按字母顺序排序的文件。现在,在英语世界中有一篇名为 "the" 的令人讨厌的小文章,它不是很重要,并且会影响您的自动排序。现在我想做的是将 "the" 移动到文件名的末尾,但在我的后缀之一(例如 -01、-02)之前,因为多个文件具有相同的名称但版本不同。所以像这样:

"The Exemplar Example-01.ex" --> "Exemplar Example, The-01.ex"

所以我转向 VisualBasic Sc​​ript (VBS) 并通过搜索 Google 接近我想要的东西,但无法得到我想要的东西。这是我的脚本:

private directfold
directfold=InputBox("Please specify a directory path:")
MsgBox("The folder to be 'de-annnoyed' is: " & directfold)

public annoyance
annoyance = "the"

Set fso = CreateObject("Scripting.FileSystemObject")  
Set folder = fso.GetFolder(directfold)

For each file In folder.Files    

If instr(file.name, searchFileName) = 1 Then
    file.name = renameFileTo

所以在脚本的底部你可能会发现 "renameFileTo" 命令没有给出任何参数,因为我不想重命名整个文件,我想 "move around" 文件名的一部分,如果文件名的那部分匹配 "annoyance" 字符串 ("the")。那么经过我漫长的漫游,有人可以帮助我吗?

您可能想让烦人的词包含尾随 space,这样 "They" 或 "Theme" 等名称就不会触发它。

如果末尾的分隔符始终是 - 并且是该字符在字符串中的唯一实例,则可以使用 Replace 来替换字符串。像这样

annoyance = "The "
f = "The Exemplar Example-01.ex"
newName = Replace(Replace(f,"-",", " + Trim(annoyance) + "-"),annoyance,"")

newName 将等于 Exemplar Example, The-01.ex

内层的Replace会根据你的格式替换-字符,外层的会把烦人的字替换成空。 Trim 将删除尾随 space.

编辑: 如果只想替换字符串的一次出现,请使用以下内容:

newName = Replace(Replace(f,"-",", " + Trim(annoyance) + "-"),annoyance,"",1,1)

有关 Replace 函数的更多信息,请参阅 here