AutoHotkey - ファイルをループし、空白を _ に置き換えます

AutoHotkey - ファイルをループし、空白を _ に置き換えます

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 Renamerなどの優れたプログラムがあるため、この作業には適していません。http://www.advancedrenamer.com/

Linux を使用している場合は、Perl Rename (rename) を使用するとさらに簡単になります。

どちらも標準の正規表現を使用します。

関連情報