【问题标题】:VBS check a list of filesVBS 检查文件列表
【发布时间】:2012-05-10 07:29:22
【问题描述】:

我有这个脚本,但想扩展它以检查文件列表以及映射驱动器 R: 是否存在,如果不存在则映射。

文件A.txt 文件B.txt 文件D.txt
文件E.txt 文件F.dll 文件G.dll

Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objLocalFile = objFSO.GetFile("C:\SCRIPT\SCRIPTTEXT.txt")
dtmLocalDate = objLocalFile.DateLastModified

Set objServerFile = objFSO.GetFile("R:\SCRIPT\SCRIPTTEXT.txt")
dtmServerDate = objServerFile.DateLastModified

If dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If

如果没有驱动器不存在,则 sn-p 不起作用,并出现错误“此网络连接不存在”但重新映射正常。

> Set WSHNetwork = CreateObject("WScript.Network")
> 
> WSHNetwork.RemoveNetworkDrive "R:","True","True"
> 
> WSHNetwork.MapNetworkDrive "R:", "\\192.168.1.103\","True"

【问题讨论】:

  • 解决方案必须在 VBScript 中吗?使用 BATch 文件似乎更容易解决这个问题。

标签: vbscript


【解决方案1】:

不映射,直接用url做对比

on error resume next
path = "\\192.168.1.103\SCRIPT\SCRIPTTEXT.txt"
if objFSO.fileExist(path)
  Set objServerFile = objFSO.GetFile(path)
  dtmServerDate = objServerFile.DateLastModified
  if dtmLocalDate < dtmServerDate Then
    objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
  end if
else
  objFSO.CopyFile objServerFile.Path, objLocalFile.Path
end if

【讨论】:

  • 感谢这个我如何循环通过 FileA.txt、FileB.txt FileD.txt、FileE.txt、FileF.dll、FileG.dll .dll 不在同一个文件夹中
  • 查看我的另一个答案,它删除文件夹中的空文件,使用相同的技术stackoverflow.com/questions/10450639/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多