Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Automatismus für PDF (Umbenennung mit Datum und Uhrzeit danach in Ordner verschieben) mit einem VBS

Frage Entwicklung VB for Applications

Mitglied: schinken87

schinken87 (Level 1) - Jetzt verbinden

17.03.2014 um 13:38 Uhr, 1403 Aufrufe, 8 Kommentare

Hallo liebe Gemeinde,

ich habe folgendes Problem:

ich bekomme aus einem Kassen-Auswertungssystem eine PDF generiert und in "Ordner X" abgelegt. Ich will diese PDF mit einem Datum und Uhrzeit versehen (umbenennen) und in einen anderen Ordner verschieben lassen. Dieser Prozess sollte im Hintergrund laufen. Hier mein Ansatz:

01.
datum=date() 
02.
 
03.
'strOldFile = Environ$("WINDIR") & "\setuplog.txt" 
04.
'strNewFile = Environ$("WINDIR") & "\newsetuplog.txt" 
05.
 
06.
strOldFile = "D:\PDF_in\1.pdf" 
07.
strNewFile = "D:\PDF_in\1_" & datum & ".pdf" 
08.
 
09.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
10.
objFSO.MoveFile strOldFile, strNewFile 
11.
Set objFSO = Nothing 
12.
 
13.
FOLDER_PDF = "D:\PDF_in"  
14.
 
15.
FOLDER_MOVE = "D:\PDF_out"  
16.
  
17.
 
18.
Set fso = WScript.CreateObject("Scripting.Filesystemobject")  
19.
 
20.
strPDFs = ""  
21.
 
22.
For Each file In fso.GetFolder(FOLDER_PDF).Files  
23.
 
24.
	If LCase(fso.GetExtensionName(file.Path)) = "pdf" Then  
25.
 
26.
		If strPDFs <> "" Then  
27.
 
28.
			strPDFs = strPDFs & ",""" & file.Path & """"   
29.
 
30.
		Else  
31.
 
32.
			strPDFs = """" & file.Path & """"   
33.
 
34.
		End If  
35.
 
36.
	End If  
37.
 
38.
Next  
39.
 
40.
If strPDFs <> "" Then  
41.
 
42.
	 
43.
	For Each pdf In Split(strPDFs,",",-1,1)  
44.
 
45.
		pdf = Replace(pdf,"""","",1,-1,1)  
46.
 
47.
		fso.MoveFile pdf , FOLDER_MOVE & "\"  
48.
 
49.
	Next  
50.
 
51.
 
52.
End If 
---

Nachteil bei meiner Version:

wenn keine Datei im Ordner Script startet nicht ( soll ja dauerhaft laufen)
dateien müssen 1 heißen ( soll alle PDF´s mit datum und Uhrzeit versehen)


Danke schonmal im vorraus.

LG

Andy
Mitglied: colinardo
17.03.2014, aktualisiert um 16:05 Uhr
Hallo Andy, Willkommen im Forum!
Dazu gabe es hier schon mehrfach Lösungen, hier eine passende bei der du nur noch das umbenennen durch ein Move ersetzen musst:
wie hier in diesem Beispiel (einmal gestartet läuft das Script im Hintergrund, und bei neu eintreffenden Dateien im Ordner werden diese mit Datum versehen in dem neuen Ordner abgelegt.)
01.
'Pfad der zu überwachen ist 
02.
Const strPath = "C:\pdf_in" 
03.
'Pfad in dem die umbenannten Dateien landen 
04.
Const strPathOut = "C:\pdf_out" 
05.
'Überwachungs-Interval in Sekunden 
06.
Const intInterval = "2" 
07.
'------------------------------ 
08.
strDrive = Split(strPath,"\")(0) 
09.
strFolder = Replace(Split(strPath,":")(1),"\","\\") & "\\" 
10.
 
11.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
12.
Set objShell = CreateObject("Wscript.Shell") 
13.
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2" ) 
14.
 
15.
strQuery = "Select * From __InstanceOperationEvent" _ 
16.
    & " Within " & intInterval _ 
17.
    & " Where Targetinstance Isa 'CIM_DataFile'" _ 
18.
    & " And TargetInstance.Drive='" & strDrive & "'"_ 
19.
    & " And TargetInstance.Path='" & strFolder & "'" 
20.
 
21.
Set colEvents = objWMIService.ExecNotificationQuery (strQuery)  
22.
 
23.
Do  
24.
    Set objEvent = colEvents.NextEvent() 
25.
    Set objTargetInst = objEvent.TargetInstance 
26.
     
27.
    Select Case objEvent.Path_.Class  
28.
        Case "__InstanceCreationEvent"  
29.
            filename = objTargetInst.Name  
30.
            If fso.GetExtensionName(filename) = "pdf" Then 
31.
               t = Timer() 
32.
               milliseconds = Int((t-Int(t))*1000) 
33.
               datum = Replace(Replace(Now(),":",".")," ","_") & "." & milliseconds 
34.
               newFileName = fso.GetBaseName(filename) & "_" & datum & ".pdf" 
35.
	       fso.MoveFile filename, strPathOut & "\" & newFileName 
36.
	    End If  
37.
    End Select  
38.
Loop
Grüße Uwe
Bitte warten ..
Mitglied: schinken87
17.03.2014 um 14:56 Uhr
Hallo Uwe,

bei mir bleiben die pdfs im Ordner und nichts geschieht.

script läuft im hintergrund.

was mache ich falsch.
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 15:03 Uhr
erst Script starten und dann die PDFs in den Ordner reinwerfen !
Bitte warten ..
Mitglied: schinken87
17.03.2014 um 15:12 Uhr
habe ich gemacht pdf immernoch im ordner.
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 15:18 Uhr
Zitat von schinken87:

habe ich gemacht pdf immernoch im ordner.
naja das habe ich hier schon x mal mit Leuten durchgemacht, dann hast du noch einen Fehler in deinem Script, hast du mein obiges genommen, das geht einwandfrei ? Pfade sind hoffentlich ohne Backslash am Ende.
Hinweis: Mit Netzlaufwerken geht dies nicht ! nur mit lokalen Laufwerken.
Bei Änderungen am Script muss dieses natürlich auch erst im Taskmanager abgeschossen werden...
Bitte warten ..
Mitglied: schinken87
17.03.2014 um 15:47 Uhr
so sorry war mein fehler geht natürlich supi. mein ordner war in großbuchstaben und im script in kleinen ;)

wie bekomm ich an das datum noch die uhrzeit mit angehängt weil der dateiname immer "1.pdf" ist und ich vermeiden will das der script stoppt weil dateien schon vorhanden sind
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 16:09 Uhr
Zitat von schinken87:
wie bekomm ich an das datum noch die uhrzeit mit angehängt weil der dateiname immer "1.pdf" ist und ich vermeiden
will das der script stoppt weil dateien schon vorhanden sind
kann es sein das mehrere deiner 1er Dateien in kurzem Zeitraum im Ordner landen, dann wäre eventuell auch der Sekundenabstand nicht ausreichend, so das man einen Random-String oder die Millisekunden hinten dran hängt, oder ist immer genug Zeitabstand dazwischen ?
Ist oben mit Uhrzeit angepasst.... die Zeit wird dann so angehängt: 17.03.2014_16.08.26.441 (mit ms am Ende)
Bitte warten ..
Mitglied: schinken87
17.03.2014 um 16:19 Uhr
super danke pass soweit alles.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Vmware
gelöst Manche VMs lassen sich nicht in Ordner verschieben (3)

Frage von Zippo97 zum Thema Vmware ...

Batch & Shell
gelöst Dateien anhand des Namens in neue Ordner verschieben (17)

Frage von Cookiemonster zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...