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