Inhalt eines Ordners als Text Datei ausgeben?

Jonas 4738

Benutzer
Mitglied seit
26. Aug 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hi,

ich Lade online von Zeit zu Zeit mehrere Dateien auf meine NAS hoch.
Das heißt, ich befinde mich nicht im gleichen Netzwerk wie die NAS.
Da ich oft eine schlechte Verbindung habe kommen teilweise nicht alle Dateien an.
Die fehlenden Dateien möchte ich dann natürlich nachträglich hochladen.
Es ist aber bei um die 1000–2000 Dateien pro Ordner sehr mühselig die fehlenden Dateien zu finden.
Darum dachte ich mir, ich könnte eine Excel Liste erstellen, die die Dateien abgleicht.
Darum Frag ich mich jetzt wie ich an eine Liste aller Dateinamen in einem Ordner komme.

Bei Windows geht das eigentlich recht einfach:

Dateien markieren -> Shift + Rechtsklick -> als Pfad kopieren

Kann mir jemand da weiterhelfen? Vielleicht gibt es ja auch eine ganz andere einfachere Lösung.

Gruß Jonas
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.515
Punkte für Reaktionen
1.110
Punkte
194
Ich würde das ganze in Windows über Powershell lösen. Ggf. musst du das Verzeichnis als Netzlaufwerk mappen.
 
  • Like
Reaktionen: Jonas 4738

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.347
Punkte für Reaktionen
643
Punkte
174
Unter WIN kannst Du das Kommandlinetool ROBOCOBY zum Synchronisieren von Verzeichnissen verwenden.
Es werden auch UNC-Pfade unterstützt.
Die Hilfe ist recht umfangreich.
 
  • Like
Reaktionen: Jonas 4738

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.579
Punkte für Reaktionen
1.413
Punkte
234
Darum Frag ich mich jetzt wie ich an eine Liste aller Dateinamen in einem Ordner komme.
Erstellt auf der DS die Datei _index.csv im angegebenen Ordner $dir (nur Dateien werden gelistet):
Bash:
dir="/volume1/<PATH>/";echo Dateiname > "${dir%/}/_index.csv";ls -p | grep -v / | grep -v "_index.csv" >> "${dir%/}/_index.csv"
 
  • Like
Reaktionen: Jonas 4738

himitsu

Benutzer
Sehr erfahren
Mitglied seit
22. Okt 2018
Beiträge
2.905
Punkte für Reaktionen
343
Punkte
123
Bash:
ls -F | grep -v "/$" > "/volume1/Freigabe/index.csv"
?

Aber ja, man kann robocopy, xcopy oder Dergleichen auch sagen, dass sie nur neue (fehlende) Dateien übertragen sollen.
Oder im Explorer / File Station einfach "überschreiben=nein" sagen.
 
  • Like
Reaktionen: Jonas 4738

Jonas 4738

Benutzer
Mitglied seit
26. Aug 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Danke mal für die schnellen Antworten. Momentan kann ich das Problem nicht angehen. Aber nächste Woche werd ich mich damit noch mal neu beschäftigen.

Was geimist und AndyHeitzer sagen überfordert bis jetzt noch meinen Horizont.

Die Option "überschreiben=nein" die mir himtsu nennt klingt für mich am besten. Das muss ich mal testen.

Ulfhednir, ich kann das doch nur als Netzlaufwerk einrichten, wenn ich auch im selben Netzwerk bin? Das währe ja eh am angenehmsten.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.579
Punkte für Reaktionen
1.413
Punkte
234
Was geimist und AndyHeitzer sagen überfordert bis jetzt noch meinen Horizont.
Diese Bash-Zeile erfüllt lediglich deine eingehende Anforderung: es wird eine Textdatei mit einer Auflistung aller Dateien im entsprechenden Ordner abgelegt. Das kannst du z.B. über den DSM Aufgabenplaner ausführen lassen.

In der vorherigen Version gab es übrigens noch einen Fehler (/volume1/<PATH>/ sind anzupassen):
Bash:
cd "/volume1/<PATH>/";echo Dateiname > "./_index.csv";ls -p | grep -v / | grep -v "_index.csv" >> "./_index.csv"
 
Zuletzt bearbeitet:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat