Inhalt eines Ordners als Text Datei ausgeben?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Jonas 4738

Benutzer
Registriert
26. Aug. 2021
Beiträge
2
Reaktionspunkte
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
 
Ich würde das ganze in Windows über Powershell lösen. Ggf. musst du das Verzeichnis als Netzlaufwerk mappen.
 
  • Like
Reaktionen: Jonas 4738
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
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
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
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.
 
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:
Status
Für weitere Antworten geschlossen.
 

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