Script zum Kopieren und Umbenennen von Dateien

Hallo,

wir nutzen derzeit die “Aufgabenplanung” von Windows 10, um eine Batch-Datei zu einer bestimmten Zeit folgendes durchführen zu lassen:

  1. Ziel-Ordner wird geleert
  2. Dateien mit der Endung .mp3 werden vom Quellverzeichnis in das Zielverzeichnis kopiert
  3. Dateien werden umbenannt (Grund: der Redakteur kann selbst entscheiden, wie er die Datei benennt- nur die ersten beiden Zeichen sind relevant)

Leider läuft die “Aufgabenplanung” nicht immer zuverlässig und wir würden das gerne per Script in mAirlist implementieren - das ist zudem auch noch übersichtlicher.

Ich bin leider Neuling im Bereich Scripting. Was ich aber gelesen habe ist, dass
es einen Befehl in DEPHI gibt, der (hoffentlich) auch funktioniert:


CopyFile('C:\OriginalFile.txt', 'D:\NewFile.txt', False)

Ich bin mir aber nicht sicher, wie das eingebunden wird.

Unsere Batchdatei sieht folgendermaßen aus:

@echo off
cls

rem Sendeordner bereinigen
del C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\*.* /Q

rem Daten aus Lokalnachrichten kopieren
rem <Quelle> <Ziel>
copy C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\??*.mp3 C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\??-Lokalnachricht.mp3

exit

Hat jemand eine Idee, ob man das entsprechend umschreiben könnte, sodass mAilrist das Script ausführen kann?

Ich freue mich über eure Hilfe.

Gruß Marco

Hallo Marco,
es gibt in mAirListScript den Befehl

ShellExecute('c:\woauchimmer.exe', 'optionale parameter');

bzw. fensterlos

ShellExecuteHidden('c:\woauchimmer.exe', 'optionale parameter');

In Deinem Beispiel also

ShellExecute('copy', 'C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\??*.mp3 C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\??-Lokalnachricht.mp3');

Hilft das?

2 Likes

Hallo Tondose,

vielen Dank für die Hilfe. Ich habe noch die folgende Fehlermeldung, wenn ich das Script über mAirlist manuell ausführe. Da fehlt wohl noch etwas.

Bildschirmfoto 2024-04-09 um 21.09.05

Sorry, wie gesagt, es ist mein erstes Script :wink:

Viele Grüße
Marco

Ist das ein Hintergrundskript? Dann mußt Du es in der Systemsteuerung/Konfiguration installieren. Ansonsten hilft nur der Wortlaut (als Code formatiert!).

Hallo @Tondose ,

es sollte kein Hintergrundscript sein. Das Kopieren der Dateien sollte immer einmal in der Stunde zu einem festgelegten Zeitpunkt stattfinden.

Gruß Marco

Gut. Hast Du das abschließende end. mit einem Punkt versehen?

1 Like

Hallo Tondose,

hier mein Script - es gibt zwar keine Fehlermeldung, aber es kopiert nichts:

begin

ShellExecute('copy', 'C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\??*.mp3 C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\??-Lokalnachricht.mp3');

end.

Gruß Marco

Zur Überprüfung: Ersetze das Skript durch

begin
  SystemLog('Dies ist ein Test.');
end.

Führe es wie das obige aus. Schreibt sich etwas ins System-Log?

Hallo Tondose,

ja, er schreibt bei dem Test die folgende Zeile in das Systemprotokoll:

14.04.2024 10:37:16	Information	Dies ist ein Test.

Nutze ich das o.g. Script zum kopieren, gibt es zwar keine Fehlermeldung, es wird aber auch nichts ins Systemprotokoll geschrieben.

Also, dann funktioniert Deine Methode, das Skript überhaupt zu starten. Nächster Test: Was passiert, wenn Du in der Windows-Eingabeaufforderung (cmd.exe) die Zeile

copy C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\??*.mp3 C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\??-Lokalnachricht.mp3

eingibst?

Das funktioniert (habe eine Testdatei in den Ordner geschoben und die anderen nicht überschrieben)

C:\Users\Sendeabwicklung>copy C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\??*.mp3 C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\??-Lokalnachricht.mp3
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\00-Sönke-Moin.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\00-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle):n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\10-Mülltonne im Gleis.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\10-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\20-Schule sammelt Müll.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\20-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\50-Weniger Züge bedeuten auch weniger Busse.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\50-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\C0-Busse3+7_22-April.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\C0-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\C1-Busse3+7_22-April - Kopie.mp3
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\D0-Welttag des Buches.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\D0-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\X0-Fahrrad im Frühling.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\X0-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
C:\Users\Sendeabwicklung\Nextcloud\Lokalnachrichten\XX-Ohne Eltern in die Ferien.mp3
C:\Users\Sendeabwicklung\Music\mAirList\News-Infos\Lokalnachrichten\XX-Lokalnachricht.mp3 überschreiben? (Ja/Nein/Alle): n
        1 Datei(en) kopiert.

Hm. Dann bin ich mit meinem Latein am Ende.

ich hatte auch noch einmal probiert, in dem Homeverzeichnis eine Datei mit dem Script zu kopieren, um evtl. ein “Rechte-Problem” auszuschließen. Aber das klappte auch nicht.

Aber dennoch vielen lieben Dank für deine Mühe.

Gruß Marco

Du könntest nochmal mittels mAirList Script einen beliebigen banalen DOS/Windows-Befehl ausführen lassen, ohne viel Parameter-Gedöns.