Windows下svn重命名文件大小写
2011-10-27 16:58
225 查看
与svn打交道,经常有重命名文件或文件夹的需求。采用TortoiseSVN遇到仅大小写不同的重命名就会弹出:
原因是windows操作系统沿袭了DOS文件系统a不区分大小写的“优点”,这样重命名后的不同大小写的文件无法作出区分,虽然svn库是文件名大小写敏感的。
采用以下batch脚本可以实现windows下文件名大小更改。原理是先将A重命名为B,然后再将B重命名为a。脚本运行需要命令行svn客户端支持(推荐SlikSvn),并且需要将svn工具和该脚本均加入到PATH环境变量中。
SvnRename.bat
@echo off
rem 参数不够两个,输出帮助
if "%2"=="" goto L_HELP
rem 参数完全相同,直接跳出
if "%1"=="%2" goto L_END
rem 参数仅大小写不同,进行复杂重命名
if /I "%1"=="%2" goto L_COMPLEX
rem 否则进行简单重命名
goto L_SIMPLE
:L_HELP
echo svn rename 增强
echo 需要两个参数: from to
goto L_END
:L_SIMPLE
svn rename %1 %2
goto L_END
:L_COMPLEX
if exist %1\NUL (
echo 暂不支持仅大小写不同的文件夹重命名
goto L_END
)
svn rename %1 __svn_rename_tmp__%1
svn rename __svn_rename_tmp__%1 %2
goto L_END
:L_END
判断bat命令行参数是否达到预期个数,可以用类似if "%2"=="" 这样的写法。if "%1"=="%2"是大小写敏感的字符串比较,添加/I参数可实现非大小写敏感的字符串比较。判断路径是否存在可以用if exist path,但无法区分是文件还是目录。幸好Windows每个目录下都有一个默认的NUL子目录,据此,通过if exist path\NUL就可判断目录是否存在。
原因是windows操作系统沿袭了DOS文件系统a不区分大小写的“优点”,这样重命名后的不同大小写的文件无法作出区分,虽然svn库是文件名大小写敏感的。
采用以下batch脚本可以实现windows下文件名大小更改。原理是先将A重命名为B,然后再将B重命名为a。脚本运行需要命令行svn客户端支持(推荐SlikSvn),并且需要将svn工具和该脚本均加入到PATH环境变量中。
SvnRename.bat
@echo off
rem 参数不够两个,输出帮助
if "%2"=="" goto L_HELP
rem 参数完全相同,直接跳出
if "%1"=="%2" goto L_END
rem 参数仅大小写不同,进行复杂重命名
if /I "%1"=="%2" goto L_COMPLEX
rem 否则进行简单重命名
goto L_SIMPLE
:L_HELP
echo svn rename 增强
echo 需要两个参数: from to
goto L_END
:L_SIMPLE
svn rename %1 %2
goto L_END
:L_COMPLEX
if exist %1\NUL (
echo 暂不支持仅大小写不同的文件夹重命名
goto L_END
)
svn rename %1 __svn_rename_tmp__%1
svn rename __svn_rename_tmp__%1 %2
goto L_END
:L_END
判断bat命令行参数是否达到预期个数,可以用类似if "%2"=="" 这样的写法。if "%1"=="%2"是大小写敏感的字符串比较,添加/I参数可实现非大小写敏感的字符串比较。判断路径是否存在可以用if exist path,但无法区分是文件还是目录。幸好Windows每个目录下都有一个默认的NUL子目录,据此,通过if exist path\NUL就可判断目录是否存在。
相关文章推荐
- svn on windows 修改文件大小写
- SVN记录转excel文件的小程序(windows版本)
- 在Windows、Linux下,分别利用BAT批处理文件和Shell脚本,生成类似“20150605_111327.txt”命名的文件
- Windows下的.svn文件的批量删除技巧
- windows删除svn文件批处理命令
- 当git上只做文件大小写重命名的修改时,如何躲坑...
- DES加密GUID+文件名称,关于DES加密后文件长度是否超过WINDOWS文件命名规定长度255个字节。
- windows的svn数据文件迁移
- svn:重命名文件之后,提交失败问题
- mac,windows 下面 删除所有的 .svn 文件
- 莫名其妙的问题:Mac电脑上的svn文件拷贝到windows电脑上发生变化 link几个字被删除
- 文件命名规范(Windows)
- windows 新建文件夹 重命名文件
- 一次性批量删除Windows下的.svn文件的技巧
- Windows和 Linux下生成以当前时间命名文件的方法
- git 提交java文件在Windows下不区分大小写问题
- windows应用程序名要与配置文件命名一致
- 快捷修改windows的hosts文件,删除.svn
- Windows去掉桌面SVN文件或文件夹问号
- windows新建或者重命名文件及文件夹必须手动刷新才能显示出来问题解决方法