Чтобы сделать трюк с "строчными буквами" и "удалить пробелы" ...
В данном решении, в выражении 'dir', используйте также "/ l"
Оператор / L в dir заставляет приводить строчные буквы к именам файлов в результате.
В качестве команды "Windows-RENAME", если вы используете "то же самое" имя файла, она заметит преобразование из заглавных букв внижний регистр.
ren XPTO.TXT xpto.txt
Результат всегда будет следующим: XPTO.TXT
Чтобы «обойти» это, мы используем эфемерную технику: перейти от старого к временному, затем -> переместить временный к новому
Тогда решение будет:
@echo off
if exist temporaryfilenametorename del temporaryfilenametorename /f/q
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir *.csv /l /b /a-d') do (
set name="%%i"
set newname=!name: =!
rename "%%i" temporaryfilenametorename
rename temporaryfilenametorename !newname!
)