[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 【已解决】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”?
赞成“拿来主义”,但是鄙视“伸手党”

如果把所有的变量d都改成a会发生什么事情?

TOP

回复 2# forfiles


试过了,报错。但是还是不明白。
赞成“拿来主义”,但是鄙视“伸手党”

TOP

遍历对象中的元素
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
复制代码

TOP

回复 3# bingxing8000


    能否把你修改之后的代码和报错信息一起贴出来看看?

TOP

Dim d

不过是一个变量没有定义而已

TOP

试着看一看

TOP

谢谢,各位。
赞成“拿来主义”,但是鄙视“伸手党”

TOP

返回列表