Top-Themen

Aktuelle Themen (A bis Z)

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 Alle Dateien mit bestimmter Dateierweiterung ein einem Verzeichnis auf Existenz prüfen

Mitglied: cbli

cbli (Level 1) - Jetzt verbinden

08.10.2007, aktualisiert 18.10.2012, 13457 Aufrufe, 13 Kommentare

Ich habe ein bereits fertiges lauffähiges Script ,daß ich nun nur noch etwas komfortabler gestalten will.
Ich wollte prüfen lassen

mit FileExists ob Dateien mit bestimmten Endungen in einem bestimmten Verzeichnis existieren (Namen sind nicht bekannt, ich will nur auf Endungen prüfen).


z.B

strOrdner = "d:\exceltemp"

in strordner könnten sich Excel Dateien mit der Endung .xls befinden. Die vollen Namen kenne ich nicht. Daher kann ich ja auch nicht mit FileExists auf ihre Existenz prüfen.
Wie prüfe ich dann nur auf Endungen ? Wildcards gehen nicht oder meine Syntax ist falsch.

Falls dies möglich ist, ist es dann auch möglich in einer schleife verschiedene Dateiendungen auf Existenz zu prüfen, also nicht nur .xls, sonder auch z.b, .doc , .txt , .mdb ,usw......
Vielleicht über ein Array ?

Vielen Dank für die Hilfe

Gruß
Claus
Mitglied: bastla
08.10.2007 um 17:03 Uhr
Hallo cbli!

Kannst Du kurz erklären, was genau Du mit dieser Prüfung vorhast bzw in welcher Form Du deren Ergebnisse benötigst?

Grüße
bastla
Bitte warten ..
Mitglied: bastla
08.10.2007 um 17:23 Uhr
... oder es einfach selbst umsetzen ...

Als Grundgerüst:
Grüße
bastla
Bitte warten ..
Mitglied: cbli
08.10.2007 um 17:29 Uhr
Hallo cbli!

Kannst Du kurz erklären, was genau Du
mit dieser Prüfung vorhast bzw in
welcher Form Du deren Ergebnisse
benötigst?


Wie ich schon schrieb, nur prüfen ob diese Dateien mit einer Dateiendung (z.B xls) in dem bestimmten Verzeichnis existieren und entprechend eine msgbox oder txtdatei ausgeben mit dem Resultat. Ist nicht zwingend notwendig für mein Script,es läuft auch ohne so wie es soll.
Alles nur Komfort Dinge.
Eventuell interessant wären:

1. Auf Existenz mehrerer verschiedener Dateiendungen auf einmal prüfen

2. Eine Kombination von Punkt 1 mit Abfrage der Dateigröße und damit verbundener
unterschiedlicher Weiterverarbeitung

3. Das Zählen der gefunden Dateien und Ausgabe in txdatei oder msgbox

Punkt 1 + 2 sind eher für zukünftige Scripte gedacht,aber es wäre natürlich auch jetzt schon gut zu wissen wies geht.
Punkt 3 könnte ich für mein jetztiges Script schon verwenden,ist aber auch nicht notwendig.

Hier mal ein Ansatz von mir der nicht funktioniert hat:


sFilename = strOrdner & strExtension
strExtension = ".xls"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(strOrdner & strExtension) = False Then
msgbox "Nichts da"
End If

If FSO.FileExists(strOrdner & strExtension) = true Then
msgbox sFilename
end if

Vielen Dank für die Hilfe

Gruß
Claus
Bitte warten ..
Mitglied: bastla
08.10.2007 um 19:14 Uhr
Hallo cbli!

Das etwas erweiterte Grundgerüst:
Grüße
bastla

P.S.: Die Möglichkeit, dass die Gesamtgröße der gefundenen Dateien eines Typs genau 1 Byte beträgt, habe ich vorsätzlich ignoriert ...
Bitte warten ..
Mitglied: cbli
10.10.2007 um 16:32 Uhr
... oder es einfach selbst umsetzen ...

Als Grundgerüst:

Vielen Dank, funktioniert sehr gut.
Noch eine letzte Frage die nach dem Probelauf aufgekommen ist:

Im weiteren Verlauf meines Scripts werden die gefundenen Excel Dateien in ein anderes
Verzeichnis verschoben. Dies funktioniert auch ,nur eben nicht wenn die Dateien im Zielverzeichnis schon existieren. Überschreiben tut er nicht.
Wie kann ich dem Script mitteilen bei dem Move Befehl ein Überschreiben auszuführen,besser noch zu überschreiben wenn die Dateien gleich groß oder größer sind ?
Habe versucht diesen Part noch in die Schleife einzubauen,mein Ansatz hat aber nicht funktioniert.

if oFile.Size(moveordner) >= oFile.Size(zielordner) then

Wie geht das ?

Vielen Dank

Gruß
Claus
Bitte warten ..
Mitglied: bastla
10.10.2007 um 17:19 Uhr
Hallo cbli!

Unter der Voraussetzung, dass "oFile" die Quelldatei darstellt, könntest Du etwa so vorgehen:
Grüße
bastla
Bitte warten ..
Mitglied: cbli
10.10.2007 um 18:08 Uhr
Hallo cbli!

Kannst Du kurz erklären, was genau Du
mit dieser Prüfung vorhast bzw in
welcher Form Du deren Ergebnisse
benötigst?

Grüße
bastla

Ich habe ein Script (dank deiner Hilfe) geschrieben,daß unteranderem in einem temp Ordner (d:\exceltemp) nach Dateien mit bestimmten Dateiendungen (eine oder auch mehrere) sucht.
Diese dann auf die Größe prüft und sie im weiteren Verlauf des Scripts irgendwann in einen anderen Ordner verschiebt. Das Prüfen auf Existenz von Dateien mit bestimmten Dateiendungen (eine oder auch mehrere) im Ordner war nur eine reine Komfortsache und habe ich inzwischen erfolgreich ins Script integriert.
Wie gesagt irgendwann werden die gefundenen Dateien verschoben und es kann vorkommen,daß ich vergesse vorher die Dateien vom letzten Mal im Zielordner zu löschen.
Einen automatisches Überschreiben scheint es ja nicht zu geben bei VBS.
Natürlich könnte ich vorher den Zielordner per Script leeren lassen,aber dort können sich noch Dateien befinden ,die ich behalten will.
Deshalb wollte ich die Dateien in d:\exceltemp mit denen im Zielordner vergleichen lassen im Hinblick auf die Größe der Dateien.
DateLastModified hilft mir in diesem Fall nicht im Hinblick auf den Inhalt der Dateien. Also nur die Größe vergleichen und wenn sie gleich groß oder größer sind,dann verschieben ansonsten
msgbox "bla bla bla".
Da auto überschreiben nicht geht,wollte ich eben,wenn größere oder gleich große Dateien gefunden wurden,diese vorher im Zielverzeichnis löschen lassen.

Hier mein Ansatz

Bitte warten ..
Mitglied: bastla
10.10.2007 um 19:52 Uhr
Hallo cbli!

Nimm Dir einmal etwas Zeit, die Postings in diesem Thread in chronologischer Reihenfolge zu lesen - Du hast gerade auf eine Frage von vorgestern geantwortet ...

Grüße
bastla
Bitte warten ..
Mitglied: cbli
10.10.2007 um 22:36 Uhr
Hallo cbli!

Nimm Dir einmal etwas Zeit, die Postings in
diesem Thread in chronologischer Reihenfolge
zu lesen - Du hast gerade auf eine Frage von
vorgestern geantwortet ...

Grüße
bastla

Oops, mein Fehler. Tut mir leid.
Könnte ein Admin meinen Beitrag an die richtige Stelle verschieben und diesen hier löschen ?

Danke schon mal.

Gruß
Claus
Bitte warten ..
Mitglied: bastla
10.10.2007, aktualisiert 18.10.2012
... und sieh Dir vielleicht auch diesen Beitrag (noch) einmal an ...

Grüße
bastla
Bitte warten ..
Mitglied: cbli
12.10.2007, aktualisiert 18.10.2012
... und sieh Dir vielleicht auch
[https://www.administrator.de/forum/alle-dateien-mit-bestimmter-dateierweiterung-ein-einem-verzeichnis-auf-existenz-pr%c3%bcfen-70399.html#comment-275290
diesen] Beitrag (noch) einmal an ...

Grüße
bastla

So, habe nun Stunden damit zugebracht mein Script zu ändern und zu testen.
Im Grunde funktioniert es, aber nur wenn ich das Script nicht nach der Abfrage (fso.FileExists(zielfolder & "\" & oFile.Name)
in die else Schleife lasse.
Wo ist mein Fehler ?

<code>

aTypen = Array("xls", "doc", "txt", "mdb")

moveordner = "D:\temp\" ' Hier findet die Verarbeitung statt
strOrdner = "D:\exceltemp\" ' Quell Verzeichnis
zielfolder = "D:\Lager\" ' Ziel Verzeichnis
' oFile = Dateien in strordner
' oFileZiel = Dateien in zielfolder (wenn sie bereits existieren sollten)

For Each sTyp In aTypen
bIsDa = False
For Each oFile In fso.GetFolder(moveordner).Files
If LCase(fso.GetExtensionName(oFile.Path)) = sTyp then
bIsDa = True
If fso.FileExists(zielfolder & "\" & oFile.Name) Then
Set oFileZiel = fso.GetFile(zielfolder & "\" & oFile.Name)
If oFile.Size >= oFileZiel.Size Then

msgbox "Quelldatei: " & ofile.name & " " & ofile.size & " ist größer / gleich" _
& vbnewline & "Zieldatei: " & ofileziel.name & " " & ofileziel.size ,64,"Hinweis"
oFileZiel.Delete
oFile.Move zielfolder
End If
else
msgbox "Quelldatei: " & ofile.name & " " & ofile.size & " ist kleiner" _
& vbnewline & "Zieldatei " & ofileziel.name & " " & ofileziel.size ,64,"Hinweis"

oFile.Move zielfolder
oFile.Delete
'End If
end if
end if
next
next

<code>

Vielen Dank nochmal für die Geduld

Gruß
Claus
Bitte warten ..
Mitglied: bastla
12.10.2007 um 13:46 Uhr
Hallo cbli!

Im Else-Zweig versuchst Du ja auch ein "oFile.Move zielordner", was angesichts der Tatsache, dass die Datei im Zielordner schon existiert, natürlich scheitert.

Was möchtest Du im Falle, dass die Quelldatei kleiner ist, eigentlich tun - diese löschen? Wenn ja, dann versuch es so:
Grüße
bastla

P.S.: Zum Schließen des < code>-Blocks musst Du ein < /code> verwenden ...
Bitte warten ..
Mitglied: cbli
15.10.2007 um 13:12 Uhr
P.S.: Zum Schließen des <
code>-Blocks musst Du ein < /code>
verwenden ...



Hallo Bastla

Danke für den Hinweis und deine Hilfe.

Dieser Beitrag kann jetzt auf gelöst gesetzt werden.

mfg
Claus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datei aus Verzeichnis auslesen?
gelöst Frage von freshman2017Batch & Shell4 Kommentare

Hallo Ihr! Ich wollte mir gerade mit nachfolgendem Batch Befehl: alle darin befindlichen Bilder auflisten. Ausgabe: Wie kann ich ...

Batch & Shell

Batch datei eine bestimmt Datei mit einer bestimmten software öffnen

gelöst Frage von Daoudi1973Batch & Shell3 Kommentare

Hallo zusammen, wir haben in der Arbeit Acrbat Reader als Standard Software um PDF-Dateien zu öffnen. meine Frage: wie ...

Microsoft Office

Word bestimmt Sprache selbst

gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Windows 10

Chinesische Zeichen in Dateierweiterung-Selektor-DropDown

gelöst Frage von TechosWindows 105 Kommentare

Hallo Liebe Gemeinde, mir ist heute etwas kurrioses aufgefallen und ich bin mir nicht so ganz sicher wie ich ...

Neue Wissensbeiträge
Microsoft Office

Microsoft warnt: Office 365 am 29. Februar leider nicht nutzbar

Information von Lochkartenstanzer vor 7 StundenMicrosoft Office1 Kommentar

Moin, Wie die Überschrift schon sagt, gibt es offensichtlicham 29. februar ein Problem: Microsoft warnt: Office 365 am 29. ...

Netzwerkmanagement
Siemens Switche initial konfigurieren
Tipp von brammer vor 11 StundenNetzwerkmanagement2 Kommentare

Hallo, Bisher gab es für Siemens Switche die Möglichkeit die initiale Konfiguration über den Simatic Manager oder das Primary ...

Virtualisierung

VEEAM Instant VM Recovery Datenverlust möglich

Information von sabines vor 1 TagVirtualisierung

Wer instant VM Recovery unter Veeam nutzt, sollte seine Installation überprüfen. In manchen Fällen könnte es zu Datenverlust kommen, ...

Administrator.de Feedback
Hinweise auf Dienstleister oder auf Suchmaschinen
Information von Frank vor 5 TagenAdministrator.de Feedback71 Kommentare

Lieber User, Admins und Moderatoren, aus gegebenen Anlass möchte ich zwei Dinge endgültig klarstellen und für die Nachwelt festhalten: ...

Heiß diskutierte Inhalte
Windows Server
Active Directory: Fehler beim Re-Promoten eines Servers
Frage von jordelWindows Server38 Kommentare

Hallo zusammen, Wir hatten einige Replikationsprobleme, weshalb ich gestern Nacht einen Domain Controller erst demoten und danach wieder promoten ...

Netzwerkprotokolle
Verständnissfrage IPv6
Frage von killtecNetzwerkprotokolle22 Kommentare

Hi, ich habe mir einen Online-Kurs zu IPv6 angeschaut. Dabei stellt sich mir die Frage der nutzbaren IPv6-Adressen. Bei ...

PHP
Dynamisches Array erstellen in PHP
Frage von Xaero1982PHP20 Kommentare

Moin Zusammen, ich bräuchte mal einen Geistesblitz. Ich habe ganz viele Daten in einer MongoDb. Ich möchte diese Daten ...

Microsoft Office
Welches MS Office Lizensmodell für 7 Arbeitsplätze in kleinen Unternehmen
Frage von harbyadmMicrosoft Office20 Kommentare

Hallo, Ich frage Euch welches Lizensmodell das günstigste ist.? ich benötige für z.Zeit 7 ARBEITSPLÄTZE , alles Windows 8-10, ...