在Windows命令提示符下,如何将所有文件重命名为小写并删除所有空格?
答案 0 :(得分:3)
制作批处理文件
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ( ' dir /b /a-d *.* ') do (
set name="%%i"
set newname=!name: =!
rename "%%i" !newname!
)
注意:在测试目录下运行,看看是否有预期的结果。我还没有测试过。
编辑:忘了说这只会删除空格。答案 1 :(得分:1)
我使用此批处理文件将所有文件夹和子文件夹重命名为小写名称:
@ECHO OFF
CALL:GETDIRS
:GETDIRS
FOR /F "delims=" %%s IN ('DIR /B /L /AD') DO (
RENAME "%%s" "%%s"
CD "%%s"
CALL:GETDIRS
CD ..
)
GOTO:EOF
答案 2 :(得分:0)
制作“小写”和“删除空格”的窍门...
在给定的解决方案的'dir'语句中,也使用“ / l”
dir中的/ L语句强制将文件名小写 结果。
作为“ 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!
)