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

2 Verzeichnisse via Variable vergleichen - als wsh script gesucht

Frage Entwicklung VB for Applications

Mitglied: emperor

emperor (Level 1) - Jetzt verbinden

20.05.2010, aktualisiert 25.05.2010, 6352 Aufrufe, 12 Kommentare

Ich suche ein WSH Script, welches 2 Verzeichnisse vergleicht und einpaar Dateioperationen ausführt

Hallo

ich suche ein wsh skript, welches 2 Verzeichnisse vergleicht.
Ich habe eine Batchdatei im Einsatz, welches aber gerne in wsh haben möchte.

plus:
- Quell- und Ziel pfad in ein Array speichern und dann vergleichen
- Suchen in den Arrays mit und ohne Wildcards (Datei*.*; lo?file*.*, usw.)

- mehrere Zielpfade mit nur einem Quellpfad vergleichen, ohne das Programm fuer jeden Vergleich zu "kopieren".
z.B.
set verz-a=c:\pfade-a
set verz-b=c:\pfade-b
vergleiche

set verz-a=c:\pfade-a
set verz-b=c:\pfade-c
vergleiche
usw ....

Gruss

Anbei mein ursprüngliches "MSDOS Quellcode":
01.
set verz-a=c:\pfade-a 
02.
set verz-b=c:\pfade-b 
03.
 
04.
for /R %pfade-a% %%I in (*.*) do ( 
05.
	for /R %pfade-b% %%J in (*.*) do ( 
06.
		IF .%%~nI%%~xI.==.%%~nJ%%~xJ. ( 
07.
			md doppelt-a 
08.
			robocopy %%I doppelt-a\%%J 
09.
			del %%J 
10.
		)))
[Edit Biber] Codeformatierung um den vermeintlichen "MSDOS Quellcode"/vermutlichen CMD-Batch-Code gesetzt. [/Edit]
Mitglied: Edi.Pfisterer
20.05.2010 um 11:58 Uhr
Hallo!
falls Du statt WHS (googeln brachte an 1. Stelle Wiener Hauskrankenpflege) WSH meinst, also VBS, dann könnte ich Dir helfen.
Vorausgesetzt, ich verstehe Dein Problem. Da meine DOS-Kenntnisse dürftig sind, wäre eine verbale Problembeschreibung hilreich.

lg
Edi
Bitte warten ..
Mitglied: emperor
20.05.2010 um 12:19 Uhr
Hallo

Ja ich meine WSH.
(Soll ich Dir via administrator.de eine priv. Nachricht schicken ?)

Gruss
Bitte warten ..
Mitglied: LotPings
20.05.2010 um 12:48 Uhr
Zitat von Edi.Pfisterer:
Hallo Edi.
also VBS, dann könnte ich Dir helfen. Vorausgesetzt, ich verstehe Dein Problem.
Tue ich auch nicht.
Da meine DOS-Kenntnisse dürftig sind, wäre eine verbale Problembeschreibung hilreich.
Da stimme ich dir auch zu,
Der Batch code ist nämlich erstens sehr ineffizient und kann so für Unterverzeichnisse auch nicht fuinktionieren.
Die innere For /R Schleife ist so eingesetzt absolut Sinnfrei.

Gruß
LotPings
Bitte warten ..
Mitglied: Edi.Pfisterer
20.05.2010 um 13:41 Uhr
Hallo!
da bin ich froh, dass Du nicht die 1. Wiener Hauskrankenpflege brauchst

ein Priv. Nachricht ist natürlich ok, besser ist aber sicher, hier direkt Dein Problem zu schildern, damit derjenige von uns, der gerade Zeit hat und das entsprechende Wissen abzurufen bereit ist, mithelfen kann...
(LotPings ist mir da in der Vergangenheit als Quell des hilfreichen Wissens schon öfter ins Auge gestochen... )

Schildere mal Dein Problem, die Lösung wird nicht lange auf sich warten lassen...

lg
Bitte warten ..
Mitglied: emperor
20.05.2010 um 14:36 Uhr
Also ich zeichne einpaar Radiosendungen aus dem Internet auf (siehe auch SHOUTcast Radio).
Ich habe einpaar Verzeichnisse, wo Musikstücke abgelegt sind, die mir gefallen.
(z.B. Top Hits, Hit 90, usw.)

Wenn ich an meinen PC erneut Musikstücke von den Radiosender abspeichere, will ich die neuen Dateien, nicht mit den bestehenden mischen. Weil manche Files mir nicht gefallen. (die liste ist ca. 5200 Zeilen lang; gibt es auch hier eine bessere Moeglichkeit, als del Dateiname.mp3 zu machen ? )

Nun zu meinem Problem.
Derzeit habe ich eine Batch Routine (u.a. aus dem Internet zusammen gebaut), welches mir diese Verzeichnisse vergleicht. Damit weis ich, ob ich neue und doppelte Musikstücke habe. Die doppelten werden in ein seperates Verzeichnis kopiert das doppelt-radiosender heist.

Da meine Routine nun sehr umfangreich ist, weil ich zeimlich viele Radiosender vergleiche und nun viele Dateien habe, braucht diese auch sehr lange. Die Verzeichnissnamen, uebergebe ich als Variable an die "subroutine".
Meine Kenntnisse in VB/WSH sind eingeschränkt.
Daher meine Frage an die Community mit der Bitte um Hilfe...

Beispiel:
Quelle: c:\musik\radio-okay\Radiosender-A
Ziel:
c:\musik\ungeprueft\Radiosender-A
c:\musik\ungeprueft\Radiosender-B
c:\musik\ungeprueft\Radiosender-C

Bei diesen 3 Zielverzeichnisse, soll er die Doppelten mp3s in die jeweiligen Verzeichnis "doppelt-radio" verschieben. Manche musikstücke sollen auch mittels Wildcard überprüft werden, da die Radiosender sich nicht an den Dateinamen genau halten.
Wie z.B. Hans Meier - Titel.mp3, Hans Meier - Guten Morgen (tv version).mp3.
Beide sind gleich, nur mittels dem Zusatz (tv version) unterscheiden sie sich, als Dateiname.

Soweit okay ?
Bitte warten ..
Mitglied: Biber
20.05.2010 um 15:11 Uhr
[OT]
Moin Edi.Pfisterer,

Zitat von Edi.Pfisterer:
(LotPings ist mir da in der Vergangenheit als Quell des hilfreichen Wissens schon öfter ins Auge gestochen... )

Inhaltlich stimme ich dir ja zu, aber stilistisch sehe ich noch Potentiale.

A propos "Wiener Hauskrankenpflege"...
Mögest du nie wieder wegen Stichverletzungen durch Wissensquellen behandelt werden müssen...

Zählt das eigentlich als Arbeitsunfall?

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: LotPings
20.05.2010 um 15:32 Uhr
[OT]
Zählt das eigentlich als Arbeitsunfall?
OK ok,um keinen Ärger mit der Berufsgenossenschaft zu kriegen, gibts demnächst nur noch etwas stumpfere Tipps
[/OT]
Gruß
LotPings
Bitte warten ..
Mitglied: Edi.Pfisterer
20.05.2010 um 16:50 Uhr
Hallo!
Schutzbrillen sind des Pudels Kern
(geile Vorstellung, oder?)

@ emperor:
ganz durchschaut hab ichs noch nicht...

ich schreib mal, wie ich es verstehe:
du hast bereits n Radiosendungen im Ordner c:\musik\radio-okay\Radiosender-A

und nun besorgst Du dir weitere Sicherheitskopien aus dem Internet und speicherst sie im Ordner
c:\musik\ungeprueft\Radiosender-A
c:\musik\ungeprueft\Radiosender-B
c:\musik\ungeprueft\Radiosender-C

und nun möchtest Du JEDE datei aus dem Ordner c:\musik\ungeprueft\Radiosender-A vergleichen mit dem Inhalt des Ordners c:\musik\radio-okay\Radiosender-A.
Falls es eine Datei gibt, die bereits vorhaden ist, dann soll sie aus dem Ordner
c:\musik\ungeprueft\Radiosender-A
in den Ordner
c:\musik\doppelt-radio
verschoben werden.
Anderenfalls soll die Datei in den Ordner c:\musik\radio-okay\Radiosender-A. verschoben werden.

Das ganze soll dann wiederholt werden mit c:\musik\ungeprueft\Radiosender-B usw.

UND: es soll mit Wildcards gearbeitet werden...

Ist dem so?
Bitte warten ..
Mitglied: Biber
20.05.2010 um 21:27 Uhr
[OT ii]
Moin Edi,

Zitat von Edi.Pfisterer:
Schutzbrillen sind des Pudels Kern
Genial, dann kann ja nichts mehr ins Auge bzw. den Wissensquellbach runtergehen...

Grüße
Biber
[/OT ii]
Bitte warten ..
Mitglied: Edi.Pfisterer
20.05.2010 um 23:47 Uhr
Tja, nun mal im Ernst:

ein erster Ansatz (davon ausgehend, dass ich Dein Problem richtig verstanden habe):
hin_und_her_kopieren.vbs
01.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
02.
On error resume next 
03.
function ordner(pfad, pfad1) 
04.
wscript.echo pfad 
05.
wscript.echo pfad1 
06.
        Set objFolder = objFSO.GetFolder(pfad) 
07.
 
08.
             Set FileList = objFolder.Files 
09.
                For Each File in FileList 
10.
                   ' Wscript.Echo File.Name & VbTab & File.Size & File.DateLastModified 
11.
                   Liste = liste & File.Name & "?" 
12.
                Next 
13.
 
14.
     RadioOkay = Split(Liste,"?") 
15.
 
16.
wscript.echo "Der Ordner " & pfad & " enthält "& Ubound(RadioOkay)+1 &" Dateien!" 
17.
 
18.
 
19.
 
20.
 
21.
       Set objFolder = objFSO.GetFolder(pfad1) 
22.
 
23.
             Set FileList = objFolder.Files 
24.
                For Each File in FileList 
25.
                kopieren = 0 
26.
                    b=Filter(RadioOkay,File.Name, True, 1) 
27.
                        for each x in b 
28.
 
29.
                              wscript.echo x & " ist bereits vorhanden!" 
30.
                              'objFSO.MoveFile File , "c:\musik\doppelt-radio\" & x 
31.
                              kopieren = kopieren +1 
32.
 
33.
                        next 
34.
 
35.
                        if kopieren = 0 then 
36.
                                Dateiname = right(file, (len(file) - instrRev(file,"\"))) 
37.
                                wscript.echo Dateiname & " würde ich in Radio-Files verschieben!" 
38.
                                'objFSO.MoveFile File , pfad & "\" & Dateiname 
39.
                        end if 
40.
                Next 
41.
 
42.
end function 
43.
 
44.
sender = split("Radiosender-A;Radiosender-B;Radiosender-C",";") 
45.
for i = 0 to UBound(sender) 
46.
call ordner("c:\musik\radio-okay\" & sender(i), "c:\musik\ungeprueft\"  & sender(i)) 
47.
next 
48.
 
Dieses - relativ ungetestete - Schnipsel (relativ, weil nicht mit deinen Pfaden - mit meinen Pfaden funktionierts...) liest in dieser Version nur mal die Dateien aus, damit du sehen kannst, was passieren würde...

(Zur Info: Abbruch der Bildschirmausgabe über den Taskmanager --> wscript.exe beenden! Ansonsten klickst Du dich zu Tode...)

Wenn das so läuft, wie Du es dir gewünscht hast:
Hochkkomma vor den Zeilen, die mit wscript beginnen setzen, damit diese auskommentiert werden, stattdessen
die Hochkomma vor den Zeilen mit 'objFSO.MoveFile entfernen...

Was die Abteilung Wildcards betrifft: bin mir da nicht sicher, wie das funktionieren soll...
Reiner Buchstabenvergleich (zB alle Buchstaben + deren Vorkommen erfassen und miteinander vergleichen) bringts ja nicht wirklich... da wäre ja Stones und Milestones schon sehr ähnlich und WINtEr bzw. WEIN noch ähnlicher (Übereinstimmung von 4 aus 6 Buchstaben, dh ca in etwa fast beinahe 75 % wenn ich meinen Schülern Glauben schenken darf
Teile miteinander zu vergleichen führt zum Stones bzw. Milestones-Problem...
Falls die Übereinstimmungen einem Muster folgen, könnten wir uns allerdings einer Lösung nähern...

Hoffe, etwas geholfen zu haben
lg
Edi

edit:
habe mir nochmal Deine Frage durchgelesen:
Manche musikstücke sollen auch mittels Wildcard überprüft werden, da die Radiosender sich nicht an den Dateinamen genau halten.
Wie z.B. Hans Meier - Titel.mp3, Hans Meier - Guten Morgen (tv version).mp3.
Beide sind gleich, nur mittels dem Zusatz (tv version) unterscheiden sie sich, als Dateiname.
2 Anmerkungen:
ich finde nicht, dass Hans Meier - Titel.mp3, Hans Meier - Guten Morgen (tv version).mp3. gleich sind. Wie soll diese Routine erkennen, dass sich hinter Titel der Song Guten Morgen verbirgt?
Was anderes wäre es, wenn Du vernünftige ID3-Tags in Deinen mp3-files angelgt hast. Überprüf das bitte mal...
Wenn der Eintrag im ID3-Tag bei Titel übereinstimmt, könnten wir das Problem sicher lösen
Bitte warten ..
Mitglied: emperor
21.05.2010 um 11:54 Uhr
ViELEN Dank !!!
Werde das am WE Testen...

Anbei die Verzeichnisse, wie sie bei mir aussehen.
Vielleicht kannst Du bitte das Skript noch so umändern, das z.B. wie bei "c:\musik\uncheck\181.fm - Awesome 80's\doppelt-181.fm - Awesome 80's" die doppelten Files verschoben werden
Am Schluss des Skripts, soll er noch eine Datei in c:\musik\uncheck\181.fm - Awesome 80's\doppelt-181.fm - Awesome 80's und in allen anderen "doppelt-...... " Verz. kopieren..

Hier ein auszug an Radiosender die ich aufnehme. Neue Dateien von den Radiosender wandern in \uncheck\...... wie unten angefuehrt.
Da ich nicht immer Zeit habe, die Files einzusortieren, habe ich nicht nur ein uncheck1 sondern auch uncheck2, uncheck3 usw...

c:\musik\okay\181.fm - Awesome 80's <-> c:\musik\uncheck1\181.fm - Awesome 80's\doppelt-181.fm - Awesome 80's
c:\musik\okay\181.fm - Awesome 80's <-> c:\musik\uncheck1\181.FM - Lite 80's\doppelt-181.fm - Awesome 80's

c:\musik\okay\181.FM - Lite 80's <-> c:\musik\uncheck1\181.FM - Lite 80's\doppelt-181.FM - Lite 80's
c:\musik\okay\181.FM - Lite 80's <-> c:\musik\uncheck1\181.fm - Awesome 80's\doppelt-181.fm - Awesome 80's

copy c:\musik\batch\!Streamriper-ausgabe-del.cmd "c:\musik\uncheck\181.fm - Awesome 80's\doppelt-181.fm\doppelt-ausgabe\ /Y
(also in jedem doppelten Verzeichniss, soll die Datei kopiert werden).

Wildcards
Ich stell mir sowas, wie bei Excel mit der Funktion rechts(Zahl) vor um die entsprechenden Interpreten besser zu finden..
Die mp3 Tags, das geht (noch) nicht, da ich den streamripper von winamp verwenden (msdos version). Damit kann ich mehrere Sender gleichzeitig aufnehmen.
(mehrere streamripper instanzen werden hierzu gestartet)

Gruss und tausend Dank fuer Deine Hilfe
Bitte warten ..
Mitglied: Edi.Pfisterer
21.05.2010 um 12:05 Uhr
Hallo!
Ich vertschüss mich jetzt ins laaange Wochenende...
nur ganz kurz zum Verständnis meines Scripts:

folgende Zeile enthält die Sendernamen:

sender = split("Radiosender-A;Radiosender-B;Radiosender-C",";")

hier kannst Du x-beliebig viele Sender einfügen und durch ; trennen...
Das Skript bastelt dann daraus den Ordnernamen selbständig, dh aus Radiosender-A wird
c:\musik\radio-okay\Radiosender-A
bzw
c:\musik\ungeprueft\Radiosender-A

Falls es doppelt vorkommt, wirds in den Ordner c:\musik\doppelt-radio\ [Zeile 30] geschoben, ansonsten beben nach
c:\musik\radio-okay\Radiosender-A

langer Rede, kurzer Sinn:
Du brauchst nur die Zeile 30 und Zeilen 44 bzw. 46 ändern und das sollte es gewesen sein...

PS: wenn du mir verrätst, wie du dir das vorgestellt hast mit der Funktion rechts(Zahl) [soll heissen, wieviele Zeichen von rechts] dann ist das kein grosses Thema..
und mir machts auch nichts aus, falls das jemand anders hier verändert...
wie gesagt: mein laaanges Wochenende mit AC/DC in Wels morgen Abend sind mir quasi heilig
THUNDER
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Verzeichnisse vergleichen mit Zwischenschritt
gelöst Frage von H41mSh1C0RBatch & Shell22 Kommentare

Hi@All, Ablauf: 1. Verzeichnis A (root: c:\temp\dir1) einlesen (pfad ab root, name, länge, letzte mal geschrieben) > Ergebnis in ...

Batch & Shell
Mehrere Verzeichnisse in einen Script angeben
gelöst Frage von KnuefiBatch & Shell17 Kommentare

Hallo zusammen, ich brauche eure Hilfe. Ich habe unten stehendes Script zum löschen ältere Dateien in einen Unterordner. Nun ...

Batch & Shell
Batch Abfrage Vergleiche mit Variable goto
gelöst Frage von ZunarasBatch & Shell4 Kommentare

Schönen guten Tag! ich habe mir ein Script gebastelt. Mehr nach dem Try and Error Prinzip als wirklichem Können. ...

Batch & Shell
Variablen oder Dateien nach Inhalt Vergleichen Powershell
Frage von Dpole86Batch & Shell7 Kommentare

Hallo Zusammen Nehmen wir an ich habe 2 Dateien und lade diese in jeweils in eine Variable. $var1 NBAPS100 ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 15 StundenMikroTik RouterOS5 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 15 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 17 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 22 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Festplatten, SSD, Raid
USB Stick recovery
Frage von petereFestplatten, SSD, Raid15 Kommentare

Hallo, ich habe einen defekten USB-Stick, der nicht mehr lesbar ist. Er wird in WIN als unbekanntes Volume mit ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...