Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove spaces from file names (in bulk)

How to remove spaces (not replace with underscores) from several thousand files in bulk in Windows? Can I do this from the DOS command?

Currently:

file one.mp3
file two.mp3

All files need to become:

fileone.mp3
filetwo.mp3
like image 561
Nick Kahn Avatar asked Jun 30 '12 00:06

Nick Kahn


People also ask

Is there a way to rename a bunch of files at once?

You can press and hold the Ctrl key and then click each file to rename. Or you can choose the first file, press and hold the Shift key, and then click the last file to select a group.

How do you handle a space in a batch file?

When you send arguments, those with poison or space characters need to be doublequoted. Inside your batch file, if you no longer need the surrounding doublequotes, you'd remove them by using %~5 instead of %5 . Additionally the recommended syntax for the set command is Set "VariableName=VariableValue" .


2 Answers

Here is a script that can efficiently bulk rename files, stripping all spaces from the name.

:renameNoSpace  [/R]  [FolderPath]
@echo off
setlocal disableDelayedExpansion
if /i "%~1"=="/R" (
  set "forOption=%~1 %2"
  set "inPath="
) else (
  set "forOption="
  if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
)
for %forOption% %%F in ("%inPath%* *") do (
  if /i "%~f0" neq "%%~fF" (
    set "folder=%%~dpF"
    set "file=%%~nxF"
    setlocal enableDelayedExpansion
    echo ren "!folder!!file!" "!file: =!"
    ren "!folder!!file!" "!file: =!"
    endlocal
  )
)

Assume the script is called renameNoSpace.bat

renameNoSpace : (no arguments) Renames files in the current directory

renameNoSpace /R : Renames files in the folder tree rooted at the current directory

renameNoSpace myFolder : Renames files in the "myFolder" directory found in the current directory.

renameNoSpace "c:\my folder\" : Renames files in the specified path. Quotes are used because path contains a space.

renameNoSpace /R c:\ : Renames all files on the C: drive.

like image 127
dbenham Avatar answered Oct 10 '22 17:10

dbenham


In Windows:

  1. Open a Command Prompt.
  2. Go to the folder with the cd command (eg.: cd "paht of your folder").
  3. Open a powershell by typing: powershell
  4. Then input this: get-childitem *.mp3 | foreach {rename-item $_ $_.name.replace(" ","")}
like image 28
Javiers Avatar answered Oct 10 '22 17:10

Javiers