【问题标题】:VB script renaming files addind Date & Time to Name?VBscript重命名文件添加日期和时间来命名?
【发布时间】:2013-03-06 04:28:29
【问题描述】:

基本代码:由 Ekkehard.Horner 编写并由我改编 一世 成立 这 代码, 谢谢大家。 Dim oShell、频率、sFile 暗淡 goFS :设置 goFS = CreateObject("Scripting.FileSystemObject") 暗淡 oSrcDir :设置 oSrcDir = goFS.GetFolder("C:\Temp1") 暗淡 sDstDir : sDstDir = "C:\Temp2" Dim oFile, nInc, sNFSpec

Set oShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f = fso.GetFolder("C:\Temp1") 
Set fc = f.Files  

frequency  = 10 * 1000 
Const cnMax = 99


WScript.Sleep frequency

 theDate = Year(Now()) _
       & Right(String(2,"0") & month(Now()),2) _ 
       & Right(String(2,"0") & Day(Now()),2) 


 For Each f1 in fc 
  If right(lcase(f1.name),4) = ".pdf" then 
 theBaseName = fso.GetBaseName(f1.name)
 theExtension = fso.GetExtensionName(f1.Name) 
 f1.Move(fso.GetParentFolderName(f1.path) & "\" & theBaseName & "_" & EID & "_"    &          theDate & "." & theExtension) 
  End If
  Next

 For Each oFile In oSrcDir.Files
 If right(lcase(oFile.name),4) = ".pdf" Then 
  nInc = 0
  sNFSpec = getNewFSpec(oFile.Name, sDstDir, nInc)
  Do While goFS.FileExists(sNFSpec) And nInc <= cnMax
     sNFSpec = getNewFSpec(oFile.Name, sDstDir, nInc)
 Loop
If nInc > cnMax Then
  Else
   oFile.Move sNFSpec
End If

End If
Next
Wend

}





Dim oShell, frequency, sFile
Dim goFS    : Set goFS    = CreateObject("Scripting.FileSystemObject")
Dim oSrcDir : Set oSrcDir = goFS.GetFolder("C:\Temp1")
Dim sDstDir : sDstDir     = "C:\Temp2"
Dim oFile, nInc, sNFSpec

Set oShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f = fso.GetFolder("C:\Temp1") 
Set fc = f.Files  

frequency  = 10 * 1000 
Const cnMax = 99


WScript.Sleep frequency

 theDate = Year(Now()) _
       & Right(String(2,"0") & month(Now()),2) _ 
       & Right(String(2,"0") & Day(Now()),2) 


 For Each f1 in fc 
  If right(lcase(f1.name),4) = ".pdf" then 
 theBaseName = fso.GetBaseName(f1.name)
 theExtension = fso.GetExtensionName(f1.Name) 
 f1.Move(fso.GetParentFolderName(f1.path) & "\" & theBaseName & "_" & EID & "_"    &          theDate & "." & theExtension) 
  End If
  Next

 For Each oFile In oSrcDir.Files
 If right(lcase(oFile.name),4) = ".pdf" Then 
  nInc = 0
  sNFSpec = getNewFSpec(oFile.Name, sDstDir, nInc)
  Do While goFS.FileExists(sNFSpec) And nInc <= cnMax
     sNFSpec = getNewFSpec(oFile.Name, sDstDir, nInc)
 Loop
If nInc > cnMax Then
  Else
   oFile.Move sNFSpec
End If

End If
Next
Wend

}

【问题讨论】:

    标签: datetime vbscript copy rename


    【解决方案1】:

    最简单的解决方案是从另一个脚本运行您的任务,该脚本本身“永远”运行(一种抽象)。

    Dim oShell, frequency, sFile
    
    Set oShell = CreateObject("WScript.Shell")
    frequency  = 10 * 1000  '10 Seconds (just for example)
    sFile      = "task.vbs" 'the script you want to run
    
    While True  'make infinite cycle
        WScript.Sleep frequency
        oShell.Run sFile
    Wend
    

    【讨论】:

      【解决方案2】:

      Panayot Karabakalov提出的解决方案也可以集成到现有脚本中:

      '...
      
      While True
        For Each oFile In oSrcDir.Files
          '...
        Next
        WScript.Sleep 30000 'milliseconds
      Wend
      
      '...
      

      另一种变体是使用无条件的Do ... Loop 而不是While True ... Wend

      '...
      
      Do
        For Each oFile In oSrcDir.Files
          '...
        Next
        WScript.Sleep 30000 'milliseconds
      Loop
      
      '...
      

      【讨论】:

      • 确实非常感谢您的回答,同时我自己在其他地方找到了第二个脚本;)
      • 但是脚本现在已经发展了,如果有人可以帮助解决这个问题,那就太好了...下面的 VBScript 仅每 10 秒查找一次 PDF 文件,如果找到,他会重命名所有 PDF 文件根据 Name Column 从 DB Index.mdb 中添加在表索引中找到的 DATE 和 ExternalID。当我输入 SQL 查询“测试”但使用相同的 EID、ExternalID 重命名每个 PDF 文件时,它工作正常。我想帮助首先检查 index.mdb 是否存在,如果存在则获取每个文件 EID 从而获取外部 ID 并相应地重命名每个文件。
      • 实际上脚本已经进化了,在同一页面上跟踪该脚本会很好......
      • Ansgar,我发现如果 db 存在,我只需要在 SQL 语句中定义一个变量来相应地更改每个文件。我为每个文件都获得了相同的 ExternalID...所以对于每个文件已经存在但我无法将它放入 SQL 语句中代替 NAME...
      猜你喜欢
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2015-10-10
      • 2014-10-27
      相关资源
      最近更新 更多