![AutoHotkey - - 循环遍历文件并用 _ 替换空格](https://linux22.com/image/1452937/AutoHotkey%20-%20-%20%E5%BE%AA%E7%8E%AF%E9%81%8D%E5%8E%86%E6%96%87%E4%BB%B6%E5%B9%B6%E7%94%A8%20_%20%E6%9B%BF%E6%8D%A2%E7%A9%BA%E6%A0%BC.png)
使用 AutoHotkey,尝试循环遍历绝对路径中的所有 jpg 并将所有空格替换为 _ 。 我已经为此奋斗了很长时间,只到了这一步:
#!l::
Loop, C:\Users\me\Desktop\OM\renaming folder\*V1.jp*
StringReplace, NewStr, OldStr, %A_SPACE%, +, All
;; StringReplace, A_LoopFileName, %A_LoopFileName%, %A_SPACE%, +, All ; also tried this, then I get an error about an illegal char in var name
Return
答案1
filePath := "C:\Path\To\Images"
Loop, %filePath%\*V1.jp*
{
newName := RegExReplace(A_LoopFileName, "\s", "_")
FileMove, %A_LoopFileFullPath%, %filePath%\%newName%
MsgBox % "New filename: " newName
}
这应该可以解决问题。只需确保先在测试批次上运行此操作,这样您就不会意外将所有图像重命名为您不想要的名称。
如果您不打算重命名图像,只需删除FileMove, %A_LoopFileFullPath%, %filePath%\%newName%
。
答案2
AutoHotkey 不适合做这项工作,因为你在 Windows 上有很多很棒的程序,比如 Advanced Renamerhttp://www.advancedrenamer.com/
如果您使用的是 Linux,那就更简单了,使用 Perl Rename(重命名)。
两者都使用标准正则表达式。