Option Explicit '定义属性常量 const Normal = 0 const OnlyRead = 1 const Hidden = 2 const System = 4 Dim LngAttrib LngAttrib = InputBox("请输入想要更改为的属性的序号(如2)" & vbLf & vbLf & "1.无属性" _ & vbLf & vbLf & "2.只读属性" & vbLf & vbLf & "3.隐藏属性" & vbLf & vbLf & "4.系统属性" _ & vbLf & vbLf & "5.只读属性 加 隐藏属性" & vbLf & vbLf & "6.只读属性 加 系统属性" & vbLf _ & vbLf & "7.系统属性 加 隐藏属性" & vbLf & vbLf & "8.只读属性 加 系统属性 加 隐藏属性",_ "提示",1) If IsNumeric(LngAttrib) = True And LngAttrib <= 7 And LngAttrib >= 1 Then Dim ObjFSO,Objpath,LngN Set ObjFSO = CreateObject("Scripting.FileSystemObject") Set Objpath = ObjFSO.GetFolder(ObjFSo.GetAbsolutePathName("")) '获取路径 Set ObjFSO = Nothing LngN = Objpath.Files.Count '获取文件数量 LngN = LngN + Objpath.SubFolders.Count '文件以及文件夹的总数量 Dim i,one ReDim arrAll(LngN) '存放文件及文件夹的信息 For Each one In Objpath.Files i = i + 1 arrAll(i) = one.Name '每个数组元素存放一个文件的名字 Next For Each one In Objpath.SubFolders i = i + 1 arrAll(i) = one.Name '每个数组元素存放一个文件夹的名字 Next Dim m,a For m=1 To Objpath.Files.Count a = a & m & ". File:" & arrAll(m) & vbLf & vbLf '将文件信息转入一个变量中 Next Set Objpath = Nothing For m = m To LngN a = a & m & ". Folder:" & arrAll(m) & vbLf & vbLf '将文件夹信息转入一个变量中 Next Dim strtarget,strTmp,str strtarget = InputBox ("请输入你想要更改属性的文件的序号,可以输入多个,以"".""结束(如1.2.)" _ & vbLf & vbLf & a,"提示") If strtarget <> "" And Len(strtarget) <> 1 Then For i = 1 To Len(strtarget) strTmp = Mid(strtarget,i,1) '逐个读取字符窜 If strTmp = "." Then '如果是点则读取之前字符所组成的数字 str = CLng(str) '将字符串强制转换成数字 If str >= 1 And str <= LngN Then call FindF Else '不再范围内则提示错误 EntErr End If Else '不是点则将读取的数据合并成一个新的字符串,遇到点后转换 If strTmp <> "." And IsNumeric(strTmp) Then str = str & strTmp Else '字符串不是数字则提示错误 EntErr End If End If Next Else '字符串为空则提示错误 EntErr End If Flush Else EntErr '不再范围内则提示错误 End If Sub FindF Dim ObjF,ObjFSO Set ObjFSO = CreateObject("Scripting.FileSystemObject") If ObjFSO.FileExists(arrAll(str)) = True Then '查找文件 Set ObjF = ObjFSO.GetFile(arrAll(str)) call ChangeAtt(ObjF) str = Empty Set ObjF = Nothing Else If ObjFSO.FolderExists(arrAll(str)) = True Then '查找文件夹 Set ObjF = ObjFSO.GetFolder(arrAll(str)) call ChangeAtt(ObjF) str = Empty Set ObjF = Nothing Else '如果都不存在则提示并退出 MsgBox "不存在该文件或文件夹",64,"提示" WScript.Quit End If End If Set ObjFSO = Nothing End Sub Sub ChangeAtt(ObjF) '更改属性 With ObjF Select Case (LngAttrib) Case 1:.Attributes = Normal Case 2:.Attributes = OnlyRead Case 3:.Attributes = Hidden Case 4:.Attributes = System Case 5:.Attributes = OnlyRead + Hidden Case 6:.Attributes = OnlyRead + System Case 7:.Attributes = Hidden + System Case 8:.Attributes = OnlyRead + Hidden + System End Select End With End Sub Sub Flush Wscript.Sleep 100 '暂停 Dim ws set ws=wscript.createobject("wscript.shell") ws.SendKeys("{F5}") '刷新 Set ws = Nothing End Sub Sub EntErr '错误提示 MsgBox "请输入有效字符",64,"提示" WScript.Quit End Sub 这是我这两个星期学期VBS的研究成果之一,呵呵,其实只是把书上讲的属性、方法简单的用了一下,希望对那些学习VBS的人也会有帮助把,纯属娱乐