Suche Lösung: Zeige alle Dateien an außer Dateien aus Liste

FreddyCollin

Ensign
Registriert
Dez. 2014
Beiträge
236
Hi

hab ein großes Problem wo ich momentan extrem auf dem Schlauch stehe:
Ich habe eine Excel Liste

12345
54321
32323
23232
...
etc.


Nun gibt es einen Ordner wo genau diese Dateien drin sind mit gleichem Namen wie in der Excel Liste plus zusätzlich noch mehr Dateien (um die geht's)...
Nun will ich Alle Dateien anzeigen lassen, Außer eben die Dateien die schon in der Liste stehen...

Hat irgendjemand irgendeine Idee?
Vllt eine Batch Datei?

Danke für jede Hilfe <3
 
Zuletzt bearbeitet:
Excel Tabelle in eine CSV exportieren und dann jeden Namen aus dem Ordner mit denen aus der CSV vergleichen.
Würde es wohl per Batch machen, geht aber wahrscheinlich per Powershell um einiges einfacher. :lol:
 
Stehen diese "noch mehr Dateien" in eigenen Zeilen?
Stehen diese "noch mehr Dateien" in eigenen Spalten?

Ich meine einen einfachen Weg zu kennen, muss aber wissen, wie die beiden Tabellen aufgebaut sind.
 
@Shio

Wie kann ich das automatisch abgleichen Ordner und CSV Datei?


@zazie

Die "noch mehr Dateien" sind eben in keiner Excel Liste... Die sind Quasi in einem Ordner abgelegt zusammen mit den Files, die in der Excel Liste gelistet sind... Ich muss nun genau diese Dateien trennen (ich brauch nur die Dateien, die eben NICHT in der Liste drin stehen)
 
Du kannst die CSV Datei in PowerShell einlesen, dann einfach mit den Dateien im Ordner abgleichen und alle nicht in der CSV vorhandenen Dateinamen ausgeben lassen, oder eine weitere CSV Datei aus diesen erstellen.

Kannst natürlich auch jede andere Programmiersprache nehmen, falls du noch nie mit PowerShell gearbeitet hast.
 
FreddyCollin schrieb:
Wie kann ich das automatisch abgleichen Ordner und CSV Datei?
z.B. in Perl (Powershell ist mir hier zu kompliziert) sähe das so aus:
  • Du hast eine 1-Spaltige CSV-Datei mit Namen
  • Du hast ein Verzeichnis, in dem sich Dateien mit diesem Namestyp (ohne Erweiterung)? befinden
  • Du startest eine Shell (bash von WSL oder bash von gitbash)
  • Du führt aus: perl missing.pl
  • Die fehlenden Dateien werden angezeigt
Das Skript missing.pl würde etwa so aussehen (ohne genau zu wissen, wie Deine Dateien wirklich heißen und wo genau sie liegen):
Code:
use strict;
use warnings;

my $csvname = 'dateien.csv';
my $ordner = '.';

# gegebene Liste aus csv (1-spaltig) oeffnen
open my $fh, '<', $csvname or die $!;
# einlesen und Zeilenende  \n entfernen
my @flist = <$fh>; chomp @flist;
# Nachschlagetabelle (hash) erzeugen
my %xlsnames = map length $_ ? ($_=>1) : (), @flist;
close $fh;

# Verzeichnis oeffnen, und einlesen 
opendir my $dh, "$ordner";
# fehlende Namen anhand der Nachschlagetabelle ausgeben
print join "\n", grep { -f && !exists $xlsnames{$_} } readdir($dh);
closedir $dh;
/edit: Kommentare verbessert und Tippfehler beseitigt
 
Zuletzt bearbeitet:
Zurück
Oben