How to replace all spaces by underscores in all file names of a folder?

后端 未结 8 2294
鱼传尺愫
鱼传尺愫 2020-12-07 18:50

I\'m trying to rename all the files inside a folder (all .exe files). I want to replace all the spaces with underscores, e.g. qwe qwe qwe asd.exe to qwe_q

8条回答
  •  感情败类
    2020-12-07 19:25

    Based on @Gray answer, I have extending it to replace filenames recursively in all subdirectories.

    File 1: replace.bat

    setlocal enabledelayedexpansion
    
    set "pattern= "
    set "replace=_"
    
    for %%I in (*.ext) do (
        set "file=%%~I"
        ren "%%I" "!file:%pattern%=%replace%!"
    )
    

    File 2: recursive.bat

    for /d /r . %%D in (*) do (
        copy replace.bat "%%D\replace.bat"
        cd "%%D"
        replace.bat
        del replace.bat
        cd..
    )
    

    Files

    • replace.bat contains script to replace space with underscore
    • recursive.bat contains script to do recursion in all subdirectories

    How to use?

    • Save both replace.bat and recursive.bat in same directory.
    • Replace .ext with desired file extension to match (like .mp4) in replace.bat.
    • Double click (run) ONLY recursive.bat file.

提交回复
热议问题