如何将文件名批量转换为小写,并在相应的文件中更新它们的引用

时间:2013-01-16 13:16:59

标签: batch-file batch-processing lowercase batch-rename dreamweaver

Adob​​e Dreamweaver可以很好地完成此操作,但只能使用单个文件名。在Dreamweaver中,当我在右侧“本地文件”框中选择文件名时,F2并重命名该文件,打开一个对话框以确认更新当前站点中任何html,css文件中的相关引用。 / p>

我希望批处理这个过程,因为我有数千个带驼峰格式的文件,我需要将它们全部改成小写。这里的问题是我还必须在任何html,css等文件中更新它们的相关引用,这是一项繁琐的工作。

所以只需寻找批处理这个过程的工具或方法,我可以将所有文件名转换为小写,并更新相应的引用/条目。引用名称可能位于给定文件夹或任何目录中的html或css文件中。

提前致谢。

1 个答案:

答案 0 :(得分:2)

经过大量改进后,我创建了这个批处理脚本,它将循环遍历当前目录中的所有指定文件,并将它们重命名为小写,并且还遍历每个文件的内容并将任何大写字母更改为小写。

@echo off
setlocal enabledelayedexpansion
set num=0
for %%a in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
set upper[!num!]=%%a
set /a num+=1
)
set num=0
for %%b in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
set lower[!num!]=%%b
set /a num+=1
)
for %%x in (C:\Users\folder1,C:\anotherfolder) do (
cd /d %%x
(
for %%c in (*.*) do (
set file=%%c
for /f "tokens=* delims=" %%e in (%%c) do (
set line=%%e
for /l %%d in (0,1,25) do (
set u=!upper[%%d]!
set l=!lower[%%d]!
call :RETURN !u! !l!
)
echo !line! >>new.txt
)
del %%c /f /q
ren new.txt %%c
ren %%c !file!
)
)
)

:RETURN
set file=!file:%1=%2!
set line=!line:%1=%2!

希望这有帮助!