Board logo

标题: [问题求助] 【已解决】vbs 有关for each ……in的用法 [打印本页]

作者: bingxing8000    时间: 2012-8-22 15:45     标题: 【已解决】vbs 有关for each ……in的用法

本帖最后由 pcl_test 于 2016-11-3 16:43 编辑
  1. Dim WSHShell'定义变量
  2. set WSHShell=CreateObject("WScript.shell") '创建一个能与操作系统沟通的对象WSHShell
  3. Dim fso,dc
  4. Set fso=CreateObject("Scripting.FileSystemObject")'创建文件系统对象
  5. set dc=fso.Drives '获取所有驱动器盘符
  6. For Each d in dc
  7. Dim str
  8. WSHShell.run("net share"&d.driveletter &"$ /delete")'关闭所有驱动器的隐藏共享
  9. next
  10. WSHShell.run("net share admin$ /delete")
  11. WSHShell.run("net share ipc$ /delete")'关闭admin$和ipc$管道共享
复制代码
在网上找到以上代码,请问:“For Each d in dc ”这句里面的“d”是哪来的?而且为什么是“d",不是“a”,也不是“c”?
作者: forfiles    时间: 2012-8-22 23:12

如果把所有的变量d都改成a会发生什么事情?
作者: bingxing8000    时间: 2012-8-23 08:53

回复 2# forfiles


试过了,报错。但是还是不明白。
作者: CrLf    时间: 2012-8-23 17:48

遍历对象中的元素
http://www.w3school.com.cn/vbscript/vbscript_looping.asp
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. For Each file In fso.GetFolder("c:\").Files
  3. WScript.Echo  "[" & file.DateLastModified & "] " & file.Name
  4. Next
  5. Set fso = Nothing
复制代码
大致相当于批的:
  1. dir /b /a-d c:\>files.txt
  2. for /f "delims=" %%a in (files.txt) do (
  3.     echo [%%~ta] %%~nxa
  4. )
  5. del files.txt>nul
复制代码

作者: forfiles    时间: 2012-8-24 08:19

回复 3# bingxing8000


    能否把你修改之后的代码和报错信息一起贴出来看看?
作者: czjt1234    时间: 2012-9-2 09:28

Dim d

不过是一个变量没有定义而已
作者: virus_bat    时间: 2012-9-3 09:36

试着看一看
作者: bingxing8000    时间: 2012-9-3 10:50

谢谢,各位。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2