vbs脚本实现修改DNS和清空IE临时文件功能
程序员文章站
2022-03-21 16:28:07
今早接到山青院电话,说需要一个修改dns为校内dns,并且清空ie临时文件的脚本,想都没想,用批处理写了一个:
复制代码 代码如下:
rem programed by...
今早接到山青院电话,说需要一个修改dns为校内dns,并且清空ie临时文件的脚本,想都没想,用批处理写了一个:
复制代码 代码如下:
rem programed by kaisir
@echo off
echo 本脚本的作用为修改您的dns为山东青年政治学院专用dns 222.194.76.2 同时帮您清除了电脑中的临时文件。若有疑问,请致电网络中心。
pause
echo 修改dns中...
netsh interface ip set dns "本地连接" source=static addr=222.194.76.2
echo dns已经修改成功,接下来将开始清空ie临时文件...
pause
echo 清除临时文件中...
del /f /s /q "%userprofile%local settingstemporary internet files*.*"
del /f /s /q "%userprofile%appdatalocalmicrosoftwindowstemporary internet files*.*"
echo 全部操作已成功完成!感谢您的使用。
pause
你瞧,思路很简单,用netsh把dns改了就是了,因为要适应win7跟xp临时目录的不同,于是删除语句写了两遍。
但是,仔细想想,这个脚本有很多问题,
1)若用户有多块网卡,这个脚本只会修改“本地连接”的那一个。
2)若用户自己手动修改了临时文件的位置,则这个脚本也无能为力。
于是,有了下面这个vbs版的脚本。
复制代码 代码如下:
'删除目录下的所有文件及文件夹
const deletereadonly = true
set objfso = createobject("scripting.filesystemobject")
objfso.deletefile(net_temp&"*.*"), deletereadonly
strcomputer = "."
set objwmiservice = getobject("winmgmts:" & strcomputer & "rootcimv2")
set colsubfolders2 = objwmiservice.execquery _
("associators of {win32_directory.name='" & net_temp & "'} " _
& "where assocclass = win32_subdirectory " _
& "resultrole = partcomponent")
for each objfolder2 in colsubfolders2
objfso.deletefolder objfolder2.name , deletereadonly
next
msgbox("所有操作已成功执行!")
else
end if
这个就比较智能了,通过winmgmts获取系统中的网卡列表,然后遍历启用的网卡,然后进行修改。而临时文件部分,也是通过读取注册表“hkcusoftwaremicrosoftwindowscurrentversionexplorershell folderscache”项的键值来获取文件夹位置。之后通过创建的fso对象的相应方法给他干掉~