Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 320
Matias Elorriaga Avatar asked Dec 26 '13 21:12

Matias Elorriaga


People also ask

How do I change part of multiple file names?

Type the following command to rename the part of the file name and press Enter: ren OLD-FILE-NAME-PART*. * NEW-FILENAME-PART*. * In the command, replace "OLD-FILE-NAME-PART" and "NEW-FILENAME-PART" with the old and new parts of the filename.


1 Answers

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

like image 85
MC ND Avatar answered Sep 22 '22 03:09

MC ND