测试发现,不能重命名带感叹号打头的文件名,怎么解决呢
--------------------------------------------------------------------
接受了namejm指导后,发布小小代码
我为什么不能在原创代码版块贴代码呢?等级不够吗?那我只能发这里了
代码功能:生成右键菜单,不要使用时可以卸载。在须处理的文件夹右键调用批处理,可对右键指定文件夹内的文件批量重命名为30个随机字母加数字,可根据要求修改文件名长度
代码中 if !n! lss 30 其中30为文件名字符长度,可随意按自已要求修改-
- @echo off
- title [右键重命名文件程序]
- mode con: cols=58 lines=12
- color 6f
-
- if not exist %systemroot%\batchRen.bat ( goto install) else ( goto next)
- :install
- echo.&echo 正在添加右键功能....&echo.
- cd.>%systemroot%\batchRen.bat
- >>%systemroot%\batchRen.bat echo @echo off
- >>%systemroot%\batchRen.bat echo title [右键重命名文件程序]
- >>%systemroot%\batchRen.bat echo mode con: cols=65 lines=30
- >>%systemroot%\batchRen.bat echo color 6f
- >>%systemroot%\batchRen.bat echo echo [code by xieqingx 20100405 blog: hi.baidu.com/xieqingx]
- >>%systemroot%\batchRen.bat echo set code=abcdefghijklmnopqrstuvwxyz0123456789
- >>%systemroot%\batchRen.bat echo setlocal enabledelayedexpansion
- >>%systemroot%\batchRen.bat echo cd /d %%1
- >>%systemroot%\batchRen.bat echo for /f "delims=" %%%%i in ('dir /a-d/b') do (
- >>%systemroot%\batchRen.bat echo set /a filenum+=1
- >>%systemroot%\batchRen.bat echo call :int "%%%%~fi" "%%%%~xi" !filenum! )
- >>%systemroot%\batchRen.bat echo echo 操作完成,正在关闭窗口....
- >>%systemroot%\batchRen.bat echo ping -n 5 127.1 ^>nul^&exit
- >>%systemroot%\batchRen.bat echo :int
- >>%systemroot%\batchRen.bat echo set str=^&set n=
- >>%systemroot%\batchRen.bat echo set name=%%~1
- >>%systemroot%\batchRen.bat echo set ext=%%~2
- >>%systemroot%\batchRen.bat echo set fnum=%%~3
- >>%systemroot%\batchRen.bat echo :begin
- >>%systemroot%\batchRen.bat echo set /a a=%%random%%%%%%35
- >>%systemroot%\batchRen.bat echo set var=!code:~%%a%%,1!^&set str=!str!!var!
- >>%systemroot%\batchRen.bat echo set /a n+=1
- >>%systemroot%\batchRen.bat echo if !n! lss 30 ( goto begin) else ( set /a num+=1 )
- >>%systemroot%\batchRen.bat echo if !num! == !fnum! (
- >>%systemroot%\batchRen.bat echo echo 正在重命名"!name!"文件
- >>%systemroot%\batchRen.bat echo ren "!name!" "!str!!ext!"
- >>%systemroot%\batchRen.bat echo echo 已更名为"!str!!ext!"
- >>%systemroot%\batchRen.bat echo echo.-----------------------------------------------
- >>%systemroot%\batchRen.bat echo ) else (
- >>%systemroot%\batchRen.bat echo set num=
- >>%systemroot%\batchRen.bat echo )
- >>%systemroot%\batchRen.bat echo set str=^&set n=
- reg add "HKCR\Directory\shell\batchRen" /ve /d "指定目录中所有子文件批量改名(&R)" /f >nul
- reg add "HKCR\Directory\shell\batchRen\command" /ve /d "%systemroot%\batchRen.bat %%1" /f >nul
- reg add "HKCR\Directory\shell\batchRen\command" /d 1 /v "check" /f >nul
- echo 添加完毕,现在你可以使用右键菜单,请用右键操作文件夹,&echo.
- echo 选择 "指定目录中所有子文件批量改名(&R)" 的菜单项&echo.
- echo 可以对你右键指定目录中的子文件来进行重命名操作了&echo.
- echo 卸载成功,正在关闭窗口....
- ping -n 8 127.1 >nul&exit
- :next
- echo.
- echo 你要卸载此右键菜单功能吗?
- echo.
- echo Y、是的,我不想要了
- echo.
- echo N、不,我要退出程序
- echo.
- set choice=
- set /p choice= 请输入指定功能代码(Y/N):
- echo.
- if not defined choice cls&goto next
- set "choice=%choice:~0,1%"
- if /i "%choice%"=="N" ( exit ) else (if /i "%choice%"=="Y" ( goto unload) else ( cls&&echo.&echo.&echo.&echo.&echo.&echo
- 请输入正确选项&ping -n 4 127.1>nul&cls&&goto :next))
- :unload
- del %systemroot%\batchRen.bat
- reg delete "HKCR\Directory\shell\batchRen" /f >nul
- echo 卸载成功,正在关闭窗口....
- ping -n 4 127.1 >nul&exit
复制代码
[ 本帖最后由 xieqingx 于 2010-4-10 00:13 编辑 ] |