mrroyal
Goto Top

VBS oder Batch um eine Datei in Unterordner zu verschieben

Hallo zusammen,

ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus.
Ich habe in der Suche nicht wirklich etwas gefunden was ich für mich verwenden könnte.

Mein Problem ist folgendes:

Ich habe eine Datei (*.JNT) die als Vorlage dient und im Ordner "Aufträge" liegt.
In den Ordner "Aufträge" kommen jeden Tag neue Unterordner mit Auftragsnummer hinzu.

Wie kann ich die Vorlagen-Datei automatisch in die Unterordner legen lassen?
Also vorher natürlich überprüfen ob diese schon existiert und wenn nicht, dann als Kopie dort einfügen.

Geht das evtl. mit einem zeitlichen Intervall (alle 10 Minuten)?

Vielen Dank und freundliche Grüße

MrRoyal

Content-Key: 308472

Url: https://administrator.de/contentid/308472

Printed on: April 20, 2024 at 04:04 o'clock

Member: rubberman
rubberman Jun 29, 2016 at 19:48:41 (UTC)
Goto Top
Hallo MrRoyal,

ungetestet etwa so:

*.vbs
Option Explicit

Const Path     = "C:\irgendwo\Aufträge"  
Const Template = "example.jnt"  
Const Interval = 1

Dim objFSO, objWMIService, objEvent, colEvents, sDrive, sFolder

Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
sDrive = objFSO.GetDriveName(Path)
sFolder = Replace(Mid(Path, 3) & "\", "\", "\\", 1, -1, vbTextCompare)  

Set colEvents = objWMIService.ExecNotificationQuery( _
  "SELECT * FROM __InstanceCreationEvent" & _  
  " WITHIN " & CStr(Interval) & _  
  " WHERE Targetinstance ISA 'CIM_Directory'" & _  
  " AND TargetInstance.Drive='" & sDrive & "'" & _  
  " AND TargetInstance.Path='" & sFolder & "'")  

Do
  Set objEvent = colEvents.NextEvent()
  objFSO.CopyFile objFSO.BuildPath(Path, Template), objEvent.TargetInstance.Name & "\"  
Loop

Das Script prüft einmal pro 1 Sekunde (Interval) ob ein neues Verzeichnis erstellt wurde. Bestehende Verzeichnisse bleiben unbetrachtet. Die Konstanten am Anfang musst du entsprechend anpassen. Für Path muss ein absoluter Pfad (incl. Laufwerk) angegeben werden.

Grüße
rubberman