用批处理打造磁盘、文件夹背景更换器
——个性背景任你换
当你每天面对”我的电脑”,打开磁盘或者文件夹的时候总是面对单调的背景,时间长了你是否会觉得枯燥?那是一定的吧!好了,从现在开始你的背景将不再单调。
一、 原理
能任意更改文件夹或者磁盘的背景,主要是运用了desktop.ini这个文件,让我们来看看它的真面目:
[.ShellClassInfo]
InfoTip=
IconFile=
IconIndex=-101
ConfirmFileOp=0
[{BE098140-A513-11D0-A IconArea_Image= IconArea_Text= IconArea_TextBackground= Attributes=1 |
[ExtShellFolderViews]
{BE098140-A513-11D0-A
[Folder Set]
Vision=2.002Build0105
Builder=ThenLong
Type=FreeSoft
那个用黑框框起来的,就是能改变磁盘和文件夹背景的代码,
IconArea_Image= //用于改变背景;IconArea_Text= //用于改变文件前景字体颜色;IconArea_TextBackground= //用于改变文件后字体颜色;如图1:
图1 Attributes=1 //设置desktop.ini为只读文件。(这个值还可以为0、2、4、8、16、32、64、128前三个是常用的分别代表一般文件、隐藏文件、系统文件)。黑框上面的代码是用来设置文件夹图标的;下面的代码是用来设置文件夹信息的,它们不是今天的主题有兴趣的朋友可以自己研究一下。
二、 应用
为了能让desktop.ini在自己想要更改背景的文件夹和磁盘下自动生成,我用批处理写了如下代码:
- @echo off
- title 个性背景任你换
- color a
- echo.
- echo 乔磊制作
- echo.
- echo ======================================================
- echo 1.更换背景 2.还原背景 3.退出
- echo ======================================================
- echo.
- :cho
- set choice=
- set /p choice= 请选择然后按回车:
- if not "%choice%"=="" set choice=%choice:~0,1%
- if /i "%choice%"=="1" goto change
- if /i "%choice%"=="2" goto huan
- if /i "%choice%"=="3" goto exit
- echo 选择无效,请重新输入
- echo.
- goto cho
- :change
- set /p pth=请输入你要更换背景的磁盘或文件夹路径(例如:e:):
- set /p pth1=请输入要使用的背景图片的路径(将图片拖进窗口即可):
- md %pth%\font
- md %pth%\fonts
- copy %pth1% %pth%\font >nul
- if exist %pth%\desktop.ini (attrib -S -H -R %pth%\desktop.ini |del /q %pth%\desktop.ini)
- echo IconArea_Image>%pth%\fonts\3.txt
- echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}]>>%pth%\desktop.ini
- echo IconArea_Text=>>%pth%\desktop.ini
- echo IconArea_TextBackground=>>%pth%\desktop.ini
- echo Attributes=1>>%pth%\desktop.ini
- ::用于提取图片的文件名和扩展名,并赋给变量pic
- for /f "delims=" %%i in ('dir /b %pth%\font\*.*') do set pic=%%i
- ::提取能更改背景的代码,将图片路径赋给它,并写入到desktop.ini中
- for /f "delims=" %%m in (%pth%\fonts\3.txt) do @echo %%m=%pth%\font\%pic% >>%pth%\desktop.ini
- rd /s /q %pth%\fonts
- attrib +S +H +R %pth%\desktop.ini
- attrib +S +H +R %pth%\font
- echo 更换完成,按任意键返回!
- pause>nul
- goto cho
- :huan
- set /p pth=请输入你要还原背景的磁盘或文件夹路径(例如:e:):
- attrib -S -H -R %pth%\desktop.ini
- attrib -S -H -R %pth%\font
- del /q %pth%\desktop.ini
- rd /s /q %pth%\font >2>nul
- echo 已还原,按任意键返回!
- pause>nul
- goto cho
- :exit
- exit
对关键代码我已经做了注释,对比图如图3、4:
图3
图4
呵呵,好了就这些了,这是我以前投过的稿件,现在拿出来与大家分享。