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

Dateien speziell sortieren VBS

Frage Entwicklung Batch & Shell

Mitglied: deeboo

deeboo (Level 1) - Jetzt verbinden

24.02.2009, aktualisiert 16:27 Uhr, 5290 Aufrufe, 6 Kommentare

Jetzt wird es ein wenig hagelig.... ;)
Es sind alle gefragt, die sich mit VB-Script auskennen.

Ich habe einen Ordner in dem verschiedene Dateien folgendes Namenformat haben:

file.123 => erstellt am 19.02.2009
file.143 => erstellt am 20.02.2009
file.645 => erstellt am 23.02.2009

datei2.183 => erstellt am 19.02.2009
datei2.182 => erstellt am 20.02.2009
datei2.189 => erstellt am 23.02.2009

meine.183 => erstellt am 19.02.2009
meine.284 => erstellt am 20.02.2009
meine.543 => erstellt am 23.02.2009

Es gibt also immer Dateien, die gleich anfangen und jeweils verschiedene Dateiendungen haben. Das Erstellungsdatum ist auch verschieden.

Nun möchte ich alle Dateien in diesem Ordner nach >> "file.*; datei2.*; meine.*" << sortieren und davon jeweils von der entspr. neuesten Datei (file.645, datei2.189 & meine.543) den Dateinamen eine bestehende Logdatei schreiben lassen.
Leider habe ich schon zig Foren durchgeforstet und wurde nicht wirklich fündig.
Mag auch daran liegen, das ich nicht der VBS Hirsch bin.
Bin schonmal soweit, das ich "CreateObject" nutzen und irgend ein Pattern setzten muss.
Aber wie, ist mir schleierhaft.

LG
deeboo
Mitglied: bastla
24.02.2009 um 17:16 Uhr
Hallo deeboo!

Ich würde dafür eher einen Batch nehmen (in VBS sind es etwa doppelt soviele Zeilen ):
01.
@echo off & setlocal 
02.
set "Ordner=D:\Ein Ordner\" 
03.
set "Dateien=file datei2 meine" 
04.
set "Log=D:\Neueste.log" 
05.
 
06.
if exist "%Log%" del "%Log%" 
07.
for %%i in (%Dateien%) do call :ProcessFile "%%i" 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
set N= 
12.
for /f "delims=" %%a in ('dir /b /on "%Ordner%%~1.*" 2^>nul') do set "N=%%a" 
13.
if defined N >>"%Log%" echo %N% 
14.
if not defined N >>"%Log%" echo Keine %1-Datei gefunden! 
15.
goto :eof
Bitte beachten: Die Ordnerangabe in Zeile 2 muss immer mit "\" enden.

Grüße
bastla
Bitte warten ..
Mitglied: deeboo
25.02.2009 um 11:55 Uhr
Hallo Bastla,

wie ich so mitbekommen habe, bist ja ein richtiger Scripthirsch.
Wollt mich vorerst für Deine Hilfe bedanken.

Die Batch funktioniert wunderbar.
Aber rein interessehalber.
Wie würde es denn ich VBS aussehen?

Wäre nett, wenn Du mir ein paar Steps auf den Weg gibst, wie ich am besten anfangen sollte bzw. ne Art "Roadmap".

Daher markiere ich es mal noch nicht als gelöst. (Auch wenn er mit dem Batchfile das tut, was er tun soll)

LG
deeboo
Bitte warten ..
Mitglied: bastla
25.02.2009 um 12:28 Uhr
Hallo deeboo!
ein richtiger Scripthirsch.
Ja, gib mir Tiernamen ...
Als VBS sähe es etwa so (leider habe ich momentan etwas weniger Zeit, daher nur die unkommentierte Fassung):
01.
Ordner = "D:\Ein Ordner" 
02.
Dateien = "file datei2 meine" 
03.
LogDatei = "D:\Neueste.log" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set Folder = fso.GetFolder(Ordner) 
07.
DateiArten = Split(LCase(Dateien)) 
08.
 
09.
For Each DateiArt In DateiArten 
10.
    D = "" 
11.
    M = "000" 
12.
    For Each File In Folder.Files 
13.
        If LCase(fso.GetBaseName(File.Name)) = DateiArt Then 
14.
            Ext = fso.GetExtensionName(File.Name) 
15.
            If Ext > M Then 
16.
                D = File.Name 
17.
                M = Ext 
18.
            End If 
19.
        End If 
20.
    Next 
21.
    If D <> "" Then 
22.
        Res = Res & vbCrLF & D 
23.
    Else 
24.
        Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!" 
25.
    End If 
26.
Next 
27.
 
28.
fso.CreateTextFile(LogDatei, True).Write Mid(Res, 3)
Grüße
bastla
Bitte warten ..
Mitglied: deeboo
27.02.2009 um 09:04 Uhr
Hat wunderbar geklappt. Haben es noch ein wenig modifiziert.
d.h. die Ausgabe in die Logdatei haben wir in ne Variable gepackt und können somit weiter arbeiten.

Ist also gelöst. Gib mir einfach mal deine Adresse, damit ich nen Kasten Bier zukommen lassen kann.

LG
deeboo
Bitte warten ..
Mitglied: bastla
27.02.2009 um 17:57 Uhr
Hallo deeboo!

Freut mich, wenn's Euch hilft ...

... und danke für das Angebot (obwohl Bier an mich vergeudet wäre - ich halte mich an: "Don't script and drink!" - und da scripte ich dann doch lieber ).

Grüße
bastla
Bitte warten ..
Mitglied: deeboo
02.03.2009 um 15:49 Uhr
Hallo Bastla,

ich häng mal noch ne kleine Frage an.
Wie kann ich jetzt nach createDate sortieren? Denn das sortieren nach Dateinamen funktioniert nicht so, wie ich es dachte. Denn jetzt komme ich in einen neune Versionsnummernbereich, wo wieder alles von 0 beginnt.

sprich:
002
001
999

Dabei ist aber 002 die aktuellste Datei. Jetzt, nach obigen Bsp, wäre es mit eine der ältesten....*grml*
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Festplatten, SSD, Raid
Reallocated sectors count: Welche Dateien befinden sich in den beschädigten Sektoren? (9)

Frage von DunkleMaterie zum Thema Festplatten, SSD, Raid ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...