0

基本コード:Ekkehard.Hornerによるもので、私が採用したものです。コードを見つけました。ありがとうございました。Dim oShell、周波数、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

}





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

}
4

2 に答える 2

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
于 2013-03-17T23:34:35.680 に答える
0

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

'...
于 2013-03-18T18:04:36.717 に答える