Skip to content

Instantly share code, notes, and snippets.

@ty0x2333
Last active September 28, 2015 21:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ty0x2333/7641e13881552849afc7 to your computer and use it in GitHub Desktop.
Save ty0x2333/7641e13881552849afc7 to your computer and use it in GitHub Desktop.
右键菜单-文件批量重命名 的 安装\卸载 脚本
@echo off
echo =====================================================
echo 批量重命名
echo By luckytianyiyan@gmail.com
echo =====================================================
echo 1. 正在检查权限...
Rem 创建文件路径
set TempFile_Name=%SystemRoot%\System32\BatTestUACin_SysRt%Random%.batemp
Rem 写入文件
( echo "BAT Test UAC in Temp" >%TempFile_Name% ) 1>nul 2>nul
Rem 判断写入是否成功
if not exist %TempFile_Name% (
echo 需要管理员身份运行
echo 请右键"以管理员身份运行"重新运行该.bat文件
Rem 删除临时文件
del %TempFile_Name% 1>nul 2>nul
goto End
)
Rem 删除临时文件
del %TempFile_Name% 1>nul 2>nul
echo 权限通过...
echo 2. 检查是否已安装...
REG QUERY "HKEY_CLASSES_ROOT\Directory\background\shell" /s|find "文件批量重命名"
IF ERRORLEVEL 1 goto Install
set /p order=请输入重装[re/r]或者卸载[un/u](默认重装):
if "%order%"=="un" goto Uninstall
if "%order%"=="u" goto Uninstall
:Install
echo 3. 正在安装...
set /p dirName=请输入安装目录(默认C:\TyyTools\BatchRename):
if "%dirName%"=="" set dirName=C:\TyyTools\BatchRename
if not exist %dirName% md %dirName%
set fName=%dirName%\BatchRename.bat
set /p defaultFileType=请输入脚本默认处理的文件后缀(可修改, 默认png):
if "%defaultFileType%"=="" set defaultFileType=png
echo 3.1 创建脚本%fName%
echo @echo off >%fName%
echo echo =====================================================>>%fName%
echo echo 批量重命名>>%fName%
echo echo By luckytianyiyan@gmail.com>>%fName%
echo echo =====================================================>>%fName%
echo echo 注意:该批处理是重命名当前目录的所有指定类型的文件>>%fName%
echo echo 使用前请确认当前文件顺序是正确的>>%fName%
echo echo ----------------------------------------------------->>%fName%
echo ::启用"延缓环境变量扩充" >>%fName%
echo setlocal EnableDelayedExpansion>>%fName%
echo ::获取前缀>>%fName%
echo for /f "delims=" %%%%i in ("%%cd%%") do set curFileName=%%%%~ni>>%fName%
echo set /p head=请输入文件前缀(默认当前文件夹名 %%curFileName%%):>>%fName%
echo if "%%head%%"=="" set head=%%curFileName%%>>%fName%
echo ::获取文件类型>>%fName%
echo set /p ftype=请输入文件类型(默认%defaultFileType%):>>%fName%
echo if "%%ftype%%"=="" set ftype="%defaultFileType%">>%fName%
echo set num="0">>%fName%
echo ::循环当前目录下所有图片的文件名,支持带空格的名称 >>%fName%
echo for /f "delims=" %%%%i in ('dir /b *.%%ftype%%') do ( >>%fName%
echo ::如果没有相同的文件名,则继续 >>%fName%
echo if not "%%%%~ni"=="%%~n0" ren "%%%%i" "!head!_!num!.%%ftype%%">>%fName%
echo ::设置数值型变量num=num+1 >>%fName%
echo set /a num+=1 >>%fName%
echo ) >>%fName%
echo echo 处理数量:%%num%% >>%fName%
echo echo 批量重命名成功! >>%fName%
echo pause>>%fName%
echo 脚本创建成功
echo 3.2 协议写入注册表
reg add "HKEY_CLASSES_ROOT\Directory\background\shell\文件批量重命名\command" /ve /t REG_SZ /d %fName%
echo 安装成功!
goto End
:Uninstall
echo 1. 正在卸载...
Setlocal enabledelayedexpansion
REM For /f "delims=" %%i in ('Reg Query "HKEY_CLASSES_ROOT\Directory\background\shell\文件批量重命名\command" /ve') do Set value=%%i
REM echo %value%
for /f "skip=2 delims=: tokens=1,*" %%i in ('Reg Query "HKEY_CLASSES_ROOT\Directory\background\shell\文件批量重命名\command" /ve') do (
set str=%%i
set var=%%j
set "var=!var:"=!"
if not "!var:~-1!"=="=" set value="!str:~-1!:!var!"
)
for /f "delims=" %%a in ('"echo %value%"') do (set lj=%%~dpa)
rd /s /q %lj%
reg delete "HKEY_CLASSES_ROOT\Directory\background\shell\文件批量重命名" /f
echo 卸载成功!
:End
pause
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment