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, 5311 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...