找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22063|回复: 7

[问题求助] 【已解决】vbs 有关for each ……in的用法

[复制链接]
发表于 2012-8-22 15:45:51 | 显示全部楼层 |阅读模式
本帖最后由 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”?
发表于 2012-8-22 23:12:28 | 显示全部楼层
如果把所有的变量d都改成a会发生什么事情?
 楼主| 发表于 2012-8-23 08:53:28 | 显示全部楼层
回复 2# forfiles


试过了,报错。但是还是不明白。
发表于 2012-8-23 17:48:40 | 显示全部楼层
遍历对象中的元素
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
复制代码
发表于 2012-8-24 08:19:23 | 显示全部楼层
回复 3# bingxing8000


    能否把你修改之后的代码和报错信息一起贴出来看看?
发表于 2012-9-2 09:28:42 | 显示全部楼层
Dim d

不过是一个变量没有定义而已
发表于 2012-9-3 09:36:09 | 显示全部楼层
试着看一看
 楼主| 发表于 2012-9-3 10:50:32 | 显示全部楼层
谢谢,各位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:48 , Processed in 0.015674 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表