windowsreplacecmd

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


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_qwe_qwe_asd.exe.

I need to do this using the command line. I tried a lot of possible solutions I found on internet and even on this site, but I can't make it work.

I also need to do this in "one single line" / "one command", but I'll accept all the working answers.


Solution

  • A one liner

    cmd /e:on /v:on /c "for %f in ("* *.exe") do (set "n=%~nxf" & set "n=!n: =_!" & ren "%~ff" "!n!" )"
    

    Spawn a cmd instance, with extensions and delayed expansion enabled, and for each exe file with spaces in name, replace spaces with underscores and rename the file with the new name