Dim FullName, ScriptName, RegName
FullName
= WScript.ScriptFullName
ScriptName = WScript.ScriptName
RegName = Left(FullName,Len(FullName)-Len(ScriptName)) & "Reginfo.Reg"
'以下两句是保存 Becky 的设置
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.run("regedit /E " &RegName& " HKEY_CURRENT_USER\Software\RimArts")

分析一下,写这个脚本的主要难度在于如何获得U盘的盘符,如果有盘符了,那么用上面提到的CopyFolder方法可以很轻松的实现.
但是,如何准确获得U盘的盘符让我思考了很久(如果大家有好写法在评论里面写一下,Thanks),后来注意到这个帖子的这句话本附件文件现在就是在U盘上的.
^_^,看来解决问题的方法就要出现了!
OK,让我们先来分析一下原来脚本的功能:
定义三个变量Fullname,ScriptName,RegName:
Dim FullName, ScriptName, RegName
将三个变量赋值:
FullName = WScript.ScriptFullName
ScriptName = WScript.ScriptName
RegName = Left(FullName,Len(FullName)-Len(ScriptName)) & "Reginfo.Reg"
FullName=WScript.ScriptFullName
这句话是利用WScript对象的ScriptFullName属性,WScript.ScriptFullName
返回的是这个脚本的完整文件名,比如:C:\TEST\TEST.VB,
而
ScriptName = WScript.ScriptName
这句话则是利用了WScript对象的ScriptName属性,ScriptName属性只是脚本名称,比如TEST.VB
有了这个两个东西,大家能否猜到要作什么?
有了这两个东西,可以得到存储脚本的路径的字符串,也就是FullName-ScriptName,
第三句
RegName = Left(FullName,Len(FullName)-Len(ScriptName)) & "Reginfo.Reg"
就是这个目的,只不过多了字符串操作函数,最后的"&"是VB里面的联字符,将当于把两个字符串粘在一起形成新字符串.
例如 "我叫" & "尤扬",出来的就是"我叫尤扬"
最后一部分:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.run("regedit /E " &RegName& " HKEY_CURRENT_USER\Software\RimArts")
就是把构造好的字符串RegName 调用Regedit.exe写入注册表.
分析之后,要获得U盘路径,我也构造一个路径字符串就可以了,然后可以让用户输入一个源文件夹的路径(inputbox部分代码实现)
这样用CopyFolder方法就可以实现脚本的功能了!
构造出来的字符串其实就是Regname 去掉后面的& "Reginfo.Reg"部分
对了,要知道字符串的值怎么办?
我用这个方法,在VB中"'"代表注释,后面的句子就没有作用了,而MSGBOX是VBscript的对话框,
比如 MsgBox "测试" 就会弹出一个对话框,里面是"测试".
要获得上面脚本的
FullName值,可以这样写:
Dim FullName, ScriptName, RegName
FullName = WScript.ScriptFullName
msgbox fullname
'ScriptName = WScript.ScriptName
'RegName = Left(FullName,Len(FullName)-Len(ScriptName)) & "Reginfo.Reg"
'以下两句是保存 Becky 的设置
'Set WshShell = Wscript.CreateObject("Wscript.Shell")
'WshShell.run("regedit /E " &RegName& " HKEY_CURRENT_USER\Software\RimArts")
这样就会弹出对话框显示Fullname的值.
OK,主要的东西都说完了,看看我写出来的脚本吧,还请脚本高手们多多指教(我是刚刚学习写脚本)
Dim FullName, ScriptName, RegName ,CopyFileToPath,CopyFileFromPath,fso
FullName
= WScript.ScriptFullName
ScriptName = WScript.ScriptName
RegName = Left(FullName,Len(FullName)-Len(ScriptName)) & "Reginfo.Reg"
'youyang added below
CopyFileToPath = Left(FullName,Len(FullName)-Len(ScriptName))
'以下两句是保存 Becky 的设置
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.run("regedit /E " &RegName& " HKEY_CURRENT_USER\Software\RimArts")
'youyang create 复制文件夹内容到U盘
'说明:因为这个脚本文件是存储在U盘上面的,所以以下编写都是基于这个前提,如果改变
'脚本运行将产生错误!
CopyFileFromPath = InputBox("path")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFolder CopyFileFromPath,CopyFileToPath