Feedback von OP: Excel-Methode hat für ihn nicht funktioniert, Matlab-Methode ist ungetestet Ich habe eine sehr unelegante Lösung, aber ich denke, dass es die Aufgabe erfüllt (vorausgesetzt, Sie haben Excel). Es funktioniert nur, wenn die Anzahl der Dateinamen in Excel passt. (Excel hat eine begrenzte maximale Anzahl von Zeilen: 1.048.576).
Gehen Sie zu cmd (ich gehe davon aus, dass Sie unter Windows sind). Wechseln Sie in das erste Laufwerk. Art:
dir /s/b/o:gn > drive1.txt
Machen Sie dasselbe für das zweite Laufwerk, ändern Sie jedoch den Namen der TXT-Datei.
Ich habe die cmd-Zeile von: https://stackoverflow.com/questions/3447503/how-to-get-a-list-of-sub-folders-und-their-filesorder- by-folder- names übernommen .
Kopieren Sie beide Ausgaben in Excel (vorausgesetzt 2007 oder neuer). Die einfachste Option, die ich kenne, ist folgende:
- Wählen Sie die Spalten aus, die die Cmd-Ausgaben enthalten.
- Klicken Sie auf der Registerkarte Daten in der Gruppe Sortieren und Filtern auf Erweitert.
- Führen Sie im Dialogfeld "Erweiterter Filter" einen der folgenden Schritte aus:
- Um den Zellbereich oder die Tabelle an Ort und Stelle zu filtern, klicken Sie auf Liste direkt filtern.
- Gehen Sie folgendermaßen vor, um die Ergebnisse des Filters an einen anderen Speicherort zu kopieren:
- Klicken Sie auf An einen anderen Ort kopieren.
- Geben Sie im Feld Kopieren nach eine Zellenreferenz ein.
- Klicken Sie alternativ auf Bild ausblenden, um das Dialogfeld vorübergehend auszublenden, wählen Sie eine Zelle im Arbeitsblatt aus und drücken Sie dann auf Bild erweitern.
- Aktivieren Sie das Kontrollkästchen Nur eindeutige Datensätze, und klicken Sie auf OK.
- Die eindeutigen Werte aus dem ausgewählten Bereich werden an den neuen Speicherort kopiert. Die Originaldaten sind nicht betroffen.
Auf diese Weise sollten Sie eine Liste aller eindeutigen Dateinamen haben. Dies ist das Gleiche wie eine Liste aller Dateinamen, die nicht kopiert wurden.
Das Excel-Verfahren wurde am Ende übernommen von: https://support.office.com/de-de/article/Filter-for-unique-values-or-remove-duplicate-values-d6549cf0-357a-4acf-9df5- ca507915b704 # bmfilter_for_unique_values
Alternativ können Sie den Befehl cmd in Matlab verwenden.
Der Befehl in Matlab könnte sein:
DosCommand=sprintf('%s %s','dir / B',directory); [status, cmdout]=dos(DosCommand); end Filenames = strread(cmdout,'%s');
Dann führe aus:
NonCopiedFilenames = A(sum(bsxfun(@eq, A(:), A(:).'))==1);
Der Trick zu den einzigartigen Werten wurde kopiert von: https://stackoverflow.com/questions/19236914/how-to-find-a-unique-value-in-a-matrix-by-using-matlab