用批处理打造磁盘、文件夹背景更换器

 

                                                 ——个性背景任你换

 

当你每天面对我的电脑,打开磁盘或者文件夹的时候总是面对单调的背景,时间长了你是否会觉得枯燥?那是一定的吧!好了,从现在开始你的背景将不再单调。

一、           原理

能任意更改文件夹或者磁盘的背景,主要是运用了desktop.ini这个文件,让我们来看看它的真面目:

[.ShellClassInfo]

InfoTip=

IconFile=

IconIndex=-101

ConfirmFileOp=0

[{BE098140-A513-11D0-A3A4-00C04FD706EC}]

IconArea_Image=

IconArea_Text=

IconArea_TextBackground=

Attributes=1

[ExtShellFolderViews]

{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}

[Folder Set]

Vision=2.002Build0105

Builder=ThenLong

Type=FreeSoft

 

那个用黑框框起来的,就是能改变磁盘和文件夹背景的代码,

IconArea_Image= //用于改变背景;IconArea_Text= //用于改变文件前景字体颜色;IconArea_TextBackground= //用于改变文件后字体颜色;如图1

用批处理打造磁盘、文件夹背景更换器_职场

1 Attributes=1 //设置desktop.ini为只读文件。(这个值还可以为0248163264128前三个是常用的分别代表一般文件、隐藏文件、系统文件)。黑框上面的代码是用来设置文件夹图标的;下面的代码是用来设置文件夹信息的,它们不是今天的主题有兴趣的朋友可以自己研究一下。

 

二、           应用

为了能让desktop.ini在自己想要更改背景的文件夹和磁盘下自动生成,我用批处理写了如下代码:

  1. @echo off  
  2.  
  3. title 个性背景任你换  
  4.  
  5. color a  
  6.  
  7. echo.  
  8.  
  9. echo  乔磊制作   
  10. echo.  
  11.  
  12. echo  ======================================================  
  13.  
  14. echo  1.更换背景            2.还原背景         3.退出  
  15.  
  16. echo  ======================================================  
  17.  
  18. echo.  
  19.  
  20. :cho  
  21.  
  22. set choice=  
  23.  
  24. set /p choice= 请选择然后按回车:  
  25.  
  26. if not "%choice%"=="" set choice=%choice:~0,1%  
  27.  
  28. if /i "%choice%"=="1" goto change  
  29.  
  30. if /i "%choice%"=="2" goto huan  
  31.  
  32. if /i "%choice%"=="3" goto exit  
  33.  
  34. echo 选择无效,请重新输入  
  35.  
  36. echo.  
  37.  
  38. goto cho  
  39.  
  40. :change  
  41.  
  42. set /p pth=请输入你要更换背景的磁盘或文件夹路径(例如:e:):  
  43.  
  44. set /p pth1=请输入要使用的背景图片的路径(将图片拖进窗口即可):  
  45.  
  46. md %pth%\font   
  47.  
  48. md %pth%\fonts   
  49.  
  50. copy %pth1% %pth%\font >nul  
  51.  
  52. if exist %pth%\desktop.ini (attrib -S -H -R %pth%\desktop.ini |del /q %pth%\desktop.ini)   
  53.  
  54. echo IconArea_Image>%pth%\fonts\3.txt  
  55.  
  56. echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}]>>%pth%\desktop.ini   
  57.  
  58. echo IconArea_Text=>>%pth%\desktop.ini   
  59.  
  60. echo IconArea_TextBackground=>>%pth%\desktop.ini   
  61.  
  62. echo Attributes=1>>%pth%\desktop.ini  
  63.  
  64. ::用于提取图片的文件名和扩展名,并赋给变量pic  
  65.  
  66. for /f "delims=" %%i in ('dir /b %pth%\font\*.*') do set pic=%%i  
  67.  
  68. ::提取能更改背景的代码,将图片路径赋给它,并写入到desktop.ini中  
  69.  
  70. for /f "delims=" %%m in (%pth%\fonts\3.txt) do @echo %%m=%pth%\font\%pic% >>%pth%\desktop.ini  
  71.  
  72. rd /s /q %pth%\fonts  
  73.  
  74. attrib +S +H +R %pth%\desktop.ini  
  75.  
  76. attrib +S +H +R %pth%\font  
  77.  
  78. echo 更换完成,按任意键返回!  
  79.  
  80. pause>nul  
  81.  
  82. goto cho  
  83.  
  84. :huan  
  85.  
  86. set /p pth=请输入你要还原背景的磁盘或文件夹路径(例如:e:):  
  87.  
  88. attrib -S -H -R %pth%\desktop.ini  
  89.  
  90. attrib -S -H -R %pth%\font  
  91.  
  92. del /q %pth%\desktop.ini  
  93.  
  94. rd /s /q %pth%\font >2>nul  
  95.  
  96. echo 已还原,按任意键返回!  
  97.  
  98. pause>nul  
  99.  
  100. goto cho  
  101.  
  102. :exit  
  103.  
  104. exit  
  105.  

 

对关键代码我已经做了注释,对比图如图34:

 

用批处理打造磁盘、文件夹背景更换器_休闲_02

3

用批处理打造磁盘、文件夹背景更换器_bat_03

4

 

 

呵呵,好了就这些了,这是我以前投过的稿件,现在拿出来与大家分享。