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

VBS循环产生的参数怎么传递

vbs循环产生的参数怎么传递

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("d:\1\0.txt", 1)
set WshShell = WScript.CreateObject("WScript.Shell")  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
strFolder = "d:\1\"   
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
filename = strLine  
Set objFile = objFSO.GetFile(filename)
set oShellLink = WshShell.CreateShortcut(strFolder & objFSO.GetBaseName(filename) & ".lnk")  
oShellLink.TargetPath = objFile  
oShellLink.WindowStyle = 1  
oShellLink.WorkingDirectory = objFSO.GetParentFolderName(filename)  
oShellLink.Save
Loop
objFile.Close

这个只传递一次就完了

Set objFile = objFSO.GetFile(filename)
这一句有问题,对象实例重名,会将开始的Set objFile = objFSO.OpenTextFile("d:\1\0.txt", 1)替换,导致第2次循环时objFile.AtEndOfStream出现错误

而且这一句似乎没有必要(不知道你的代码是不是只有这么多)

要创建很多个快捷方式,最好使用过程
  1. Set objFSO = CreateObject("Scripting.FileSystemObject")
  2. Set objFile = objFSO.OpenTextFile("d:\1\0.txt", 1)
  3. set WshShell = WScript.CreateObject("WScript.Shell")  
  4. strFolder = "d:\1\"   
  5. Do Until objFile.AtEndOfStream
  6. makelink RePlace(objFile.ReadLine,"""","")
  7. Loop
  8. objFile.Close
  9. Sub makelink(filename)
  10. Set f = objFSO.GetFile(filename)   '似乎没有必要
  11. set oShellLink = WshShell.CreateShortcut(strFolder & objFSO.GetBaseName(filename) & ".lnk")  
  12. oShellLink.TargetPath = f          '此处直接用filename即可
  13. oShellLink.WindowStyle = 1  
  14. oShellLink.WorkingDirectory = objFSO.GetParentFolderName(filename)  
  15. oShellLink.Save
  16. End Sub
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

Do while objFile.AtEndOfStream <> true

TOP

能说清楚点儿么?你要干什么?

TOP

返回列表