Jörg: Songs neu nummerieren (php) / Lösungsansatz zur Diskussion

Beitrag lesen

Hi Rolf,

vorab: Ich hoffe, Du hast mien Post nicht als Vorwurf verstanden, denn ich sehe das genauso, wie Du:

ich kann keine Garantie für Snippets übernehmen, die ich vom Hirn ins Forum gedumpt habe. Die Verantwortung für Code, den Du laufen lässt, hast Du allein.

So isses.

Die erste Frage muss daher leider lauten: hast Du das Script getestet, bevor Du es auf den Originalordner losgelassen hast? Z.B. indem Du ein paar Lieder aus dem Originalordner woandershin kopiert und das Script auf die Kopie geworfen hast?

Habe ich gemacht. Aber nicht mit den Originaldaten, sondern einer Testliste.

Die zweite Frage muss lauten: Wo ist dein Backup? Das sollte den Stand vor dem Scriptlauf wiederherstellbar machen. Kein Backup? Kein Mitleid. Hm. Ja. Ich habe auch nicht von allen Dateisammlungen ein ordentliches Backup und verdiente in solchen Fällen deshalb auch kein Mitleid…

Ich habe sogar ein Backup gemacht. Aufs handy...habe aber vergessen, dass ich inzwischen das Handy hab wechseln müssen 😉

Aber...

Ergebnis: Von 340 mühsam gesuchten Songs sind nur noch 26 übrig

Wie kann das sein, wenn (a) das Script keine Löschoperation enthält und (b) im Falle von "Datei existiert schon" nichts tut? Das war ja genau das Problem, auf das Dedlfix hinwies: rename überschreibt die Zieldatei, wenn sie existiert, so dass ein Bug dazu führen kann, dass nachher Dateien fehlen.

Vielleicht wurden die Dateien auch an einen unerwarteten Ort verschoben. Was war der aktuelle Ordner für das PHP Script, das das angerichtet hat? Liegen die umbenannten Dateien in diesem Ordner? Wenn rename kein Schreibrecht auf den Zielordner hat, sollte es nichts tun. Es hat was getan, also müssen die Dateien irgendwo sein.

Mein Retter in der Not... 😀

Tatsächlich hat das Script fein säuberlich alle Songs wie gewünscht nummeriert ins Scriptverzeichnis verschoben. Die Songs waren auf C:\xyz und das Script lag in Z:\musik.

OK, so wird ein Schuh draus:

ich habe kein Zielverzeichnis angegeben, also hat das Script alle Titel ins Scriptverzeichnis geschrieben und da dort bereits die 50 Testeinträge meines Tests lagen, habe ich die Fehlermeldungen bekommen.

Insofern sind die Songs wohl gerettet, aber ist trotzdem ein wenig doof, weil nun natürlich Doppeleinträge in der Liste sind, weil die Testliste eine Teilliste der Originalliste war.

Also muss ich jetzt das Script nochmal neu durchlaufen lassen und die Duplikate (die es ja wegen der Nummerierung nicht wirklich sind) heraus filtern. Ach Herrje. 😏

Jörg