else s=”not exist”
set foldr=fs.createfolder(“c:/temp”) //不存在则建立
end if 拷贝:
注意:如果c:/data 和d:/data都存在,脚本会出错,复制也就会停止,如果要强制覆盖,使用fs.copyfolder
“c:/data” “d:/data”,true
移动:
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.movefolder “c:/data” “d:/data”
我们可以使用统配符,来方便操作: 例如, fs.movefolder :c:/data/te*” , “d:/working” 注意:在目的路径最后没有使用“/” 也就是说我没有这样写:
fs.movefolder c:/data/te*” , “d:/working/”
这样写的话,如果d:/working 目录不存在,windows就不会为我们自动创建这个目录。
注意:上面我们所举的例子都是在利用fso提供的方法,如果使用folder对象也完全是可以的:
set fs= wscript.createobject(“scripting.filesystemobject”)
set f=fs.getfolder(“c:/data”)
f.delete //删除文件夹c:/data。如果有子目录,也会被删除
f.copy “d:/working”,true //拷贝到d:/working
f.move “d:/temp” //移动到d:/temp
一般指的就是系统文件夹:/windows/system32,
临时文件夹,windows文件夹,在前几篇的时候,我们提过一下:例如
set fs=wscript.createobject(“scripting.filesystemobject”) set wshshell=wscript.createobject(“wscript.shell”) osdir=wshshell.expandenvironmentstrings(“%systemroot%”)
set f =fs.getfolder(osdir)
wscript.echo f
这个方法使用3种值:
0 表示windows文件夹,相关常量是windowsfolder
1 系统文件夹,相关常量是systemfolder 2 临时目录,相关常量temporaryfolder
例如:
set fs=wscript.createobject(“scripting.filesystemobject”) set wfolder=fs.getspecialfolder(0) ?返回windows目录 set wfolder=fs.getspecialfolder(1) ?返回system32/ set wfolder=fs.getspecialfolder(2)′返回临时目录
当然,还有简单的方法 那就是使用getspecialfolder() 3、特殊文件夹
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.copyfolder “c:/data” “d:/data”
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.deletefolder(“c:/windows”)
删除:
◎Vbs脚本编程简明教程之九—妙用SendKeys简化重复操作
每次开机的时候,你想自动登陆你的QQ或者博客吗?巧妙使用VBS中的SendKeys命令(这个命令的作用就是模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行),可以极大
的方便我们的常用操作。其使用格式为:
Object.SendKeys string其中:
Object:为WshShell对象,即脚本的第一行为: Set WshShell=WScript.CreateObject(\
将Object替换为WshShell
“string”:表示要发送的按键指令字符串,需要放在英文双引号中。它包含如下内容:
1.基本键:一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母“x”,使
用“WshShell.SendKeys
\即可。当然,也可直接发送多个按键指令,只需要将按键字符按顺序排列在一起即可,例如,要发送按
键“cfan”,可以使用 “WshShell.SendKeys \。
2.特殊功能键:对于需要与Shift、Ctrl、Alt三个控制键组合的按键,SendKeys使用特殊字符来表示:
Shift — +;Ctrl — ^;Alt — %
如要发送的组合按键是同时按下Ctrl+E,需要用WshShell.SendKeys
\表示,如果要发送的组合按键是按住Ctrl键的同时按下E与C两个键,这时应使用小括号把字母键括
起来,书写格式为“WshShell.SendKeys \,这里要注意它与“WshShell.SendKeys
\的区别,后者表示组合按键是同时按住Ctrl和E键,然后松开Ctrl键,单独按下“C”字母键。
由于“+”、“^”这些字符用来表示特殊的控制按键了,如何表示这些按键呢?只要用大括号括住这些字符即可。
例如,要发送加号“+”,可使用“WshShell.SendKeys
\。另外对于一些不会生成字符的控制功能按键,也同样需要使用大括号括起来按键的名称,例如要发
送回车键,需要用“WshShell.SendKeys \表示,发送向下的方向键用 “WshShell.SendKeys \表示。
如果需要发送多个重复的单字母按键,不必重复输入该字母,SendKeys允许使用简化格式进行描述,使
用格式为“{按键
数字}”。例如要发送10个字母“x”,则输入“WshShell.SendKeys \即可。
例一:WshShell.SendKeys \
代码的含义为:按下Ctrl+Esc组合键(相当于按Win键)打开“开始”菜单,接着按U键打开“关机”菜单。
例二:让VBS脚本自动在记事本中输入一行文字“hello, welcome to cfan”。
Dim WshShell
Set WshShell=WScript.CreateObject(\
WshShell.Run \WScript.Sleep 2000
//本行的含义为是脚本暂停2秒,给notepad一个打开的时间,有时时间太短可能导致后面的字符无法进
入编辑区
WshShell.AppActivate \无标题 - 记事本
\为寻找可执行程序的标题框,”无标题-记事本”内容你的自己打开看一下
WshShell.SendKeys \作业1:让脚本自动输入下面两段小短句 This is the most wonderful day of my life
because I′m here with you now
作业2:让脚本在输入短句后自动关闭记事本,并保存文件名为“test”,注意关闭记事本可以直接使用组合
按键Alt+F4来实现。
例三:制作能自动定时存盘的记事本
我们最常用的记事本没有Word、WPS那样的自动定时存盘功能,其实利用VBS脚本再加上SendKeys命令,就能弥补这个遗憾。打开记事本,输入以下内容(为容易描述和分析,把代码分为四个部分):
′第一部分:定义变量和对象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject(\
TXTFileName=InputBox(\请输入你要创建的文件名(不能用中文和纯数字):\
′第二部分:打开并激活记事本 WshShell.Run \WScript.Sleep 200
WshShell.AppActivate \无标题 - 记事本\
′第三部分:用输入的文件名存盘
WshShell.SendKeys \WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300 WshShell.SendKeys \WScript.Sleep AutoSaveTime ′第四部分:自动定时存盘
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys \WScript.Sleep AutoSaveTime
Wend