Pfadangabe mit Variable

  • Hallo zusammen,

    ich brauche eine kleine rename.exe der man via Kommandozeile einen Dateinamen mitgeben kann und die dann diese Datei umbenennt.

    Beispiel: via Kommandozeile "rename.exe test.txt "-> damit wird aus der test.txt " 2020-02-06-15-27-39-test.txt"

    Ohne Variable hab ich es auch hinbekommen, aber jetzt komm ich nicht weiter.

    Fehlermeldung:

    Line 5 (File "C:\temp\Wasserzeichen-Copyright\filerenamer2.au3"):

    $dest = C:\temp\Wasserzeichen-Copyright\

    $dest = C:^ Error

    Error:

    C
    #Include <File.au3>
    #include <Date.au3>
    
    #################################### hier liegt das Problem
    $path = "C:\temp\Wasserzeichen-Copyright\" & $CmdLineRaw
    $dest = C:\temp\Wasserzeichen-Copyright\
    
    FileMove($path, $dest @YEAR & "-" & @MON & "-" & @MDAY & "-" & @HOUR & "-" & @MIN & "-" & @SEC & "-" & $CmdLineRaw,1)

    Ich würde mich freuen, wenn wenn ein Wissender hier den entscheidenden Tip geben kann.

    Vielen Dank im Vorraus

    Einmal editiert, zuletzt von pillic (7. Februar 2020 um 08:03)

  • Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich stelle gerade fest, dass die .exe auf dem Server ja andere Pfade benutzt.

    DIe .exe wird in D:\Scripte\renamer.exe liegen.

    Und dann ist die Quelle der umzubenennen Datei D:\WEBSERVER\NW\ - wie auch der Zielpfad.

    Konkret lautet der Aufruf von "freepdf":

    D:\Scripte\renamer.exe D:\WEBSERVER\NW\Mischungsberechnung.pdf.

    Ich hatte gedacht mit $CMDLINE = StringTrimLeft($CMDLINE,16) kann ich nur den Dateinamen ändern lassen, aber das gibt immer einen Fehler:

    Line 3065 (File "C:\temp\Wasserzeichen-Copyright\filerenamer2.exe"):

    Error: Subscript used on non-accessible variable.

    Hast Du hier noch eine Idee?

  • Hast Du hier noch eine Idee?

    Bin gerade etwas abgelenkt, da ich selbst an einem Projekt arbeite :P.

    Dein Programm liegt also auf D:\Scripte\renamer.exe und wird auch dort gestartet, korrekt ?

    Startest Du das Programm direkt, oder per CMD (Batch) ?

    Quelle und Ziel der umzubenennenden Datei ist D:\WEBSERVER\NW\ , korrekt ?

    Was macht den folgendes Skript ? :

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Kein Problem, ich bin ja für jede Hilfe Dankbar.

    Folgendes Setup: Auf dem Server (MS2003) wird von den Usern via Freepdf gedruckt. Die pdf Dateien landen im Ordner D:\WEBSERVER\NW\.

    In Freepdf kann ich eine Aktion nach PDF Erstellung definieren. Das wäre dann die Befehlszeile D:\Scripte\renamer.exe %pdfFile und noch Variablen mitgeben, wie Name, Datum, Uhrzeit. In meinem Fall nur der Name (%pdfFile).

    In freepdf seh ich dann folgenden Aufruf:

    D:\Scripte\filerenamer.exe D:\WEBSERVER\NW\Mix Design - Mischungsberechnung.pdf

    Warum jetzt via AutoIt - weil ich auch den angemeldeten User (@UserName) in den Namen schreiben muss.

    Bei dem 2.Script passiert leider gar nichts.Keine Fehlermeldung und auch keine Dateiumbenennung.

  • In Freepdf kann ich eine Aktion nach PDF Erstellung definieren. Das wäre dann die Befehlszeile

    Ah ok, der Aufruf wird also von Freepdf generiert.

    Aber warum heißt es einmal D:\Scripte\renamer.exe und dann D:\Scripte\filerenamer.exe , und der Dateiname lautet wirklich Mix Design - Mischungsberechnung.pdf ?

    Muss gleich mal weg, antworte aber später.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich habe die .exe umbenannt und dann nicht wieder zurück, um es hier zu posten.

    Ja, so heißt eine der möglichen Dateien ("Durchgeführte Prüfungen.pdf", "BSV als Kostenliste (EN - Sorten).pdf") - wenn es einfacher ist, können auch alle Leerzeichen durch Unterstriche ersetzt werden.

    Keine Eile

    Vielen Dank

  • Starte bitte mal folgendes Skript mit dem Parameter und poste das Ergebnis :

    Code
    MsgBox(0, "Parameter", $CMDLINERAW & @CRLF)

    (dies ist quasi ein Dummy für die renamer.exe)

    EDIT : pillic

    Ja, so heißt eine der möglichen Dateien

    Aus z.B. Durchgeführte Prüfungen.pdf soll dann 2020-02-06-15-27-39-Durchgeführte Prüfungen.pdf werden, korrekt ?

    wenn es einfacher ist, können auch alle Leerzeichen durch Unterstriche ersetzt werden

    Nicht zwingend erforderlich, aber etwas einfacher wäre es schon ;).

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (7. Februar 2020 um 13:02)

  • In der Box steht:

    D:\WEBSERVER\NW\Mix Design - Mischungsberechnung.pdf

    Zitat

    Aus z.B. Durchgeführte Prüfungen.pdf soll dann 2020-02-06-15-27-39-Durchgeführte Prüfungen.pdf werden, korrekt ?

    + der Username vorangestellt, also: user1-2020-02-06-15-27-39-Durchgeführte Prüfungen.pdf ... Die User arbeiten per Terminalsession in der APP auf dem Server, drucken aber alle in einen Webordner (historisch bedingt).

    Zitat

    Nicht zwingend erforderlich, aber etwas einfacher wäre es schon ;).

    Dann so simple wie möglich - falls man das so sagen kann :) - soll heißen, da bin ich absolut flexibel.

    Vielen Dank!

  • + der Username vorangestellt, also: user1-2020-02-06-15-27-39-Durchgeführte Prüfungen.pdf

    Für den Usernamen habe ich hier das Makro @UserName verwendet :

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wow, vielen Dank für die Mühe. Ich hätte nicht gedacht, dass es so aufwendig wird (so sieht es für mich zumindest aus).

    Ich werd' jetzt erst am am Montag zum Testen kommen. Gebe aber dann umgehend Bescheid.

    Schönes WE

  • Wow, vielen Dank für die Mühe. Ich hätte nicht gedacht, dass es so aufwendig wird (so sieht es für mich zumindest aus).

    Na ja, sooo aufwendig ist es nun auch nicht (24 Zeilen ^^). Man könnte sogar einiges kürzen bzw. weglassen, aber ich wollte, dass es für Dich nachvollziehbar bleibt. Da kommen sicher noch Dinge hinzu.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Na ja, sooo aufwendig ist es nun auch nicht (24 Zeilen ^^ ). Man könnte sogar einiges kürzen bzw. weglassen, aber ich wollte, dass es für Dich nachvollziehbar bleibt.

    Hihi... ja, mit viel Mühe kann man da sicher auch einen Einzeiler draus machen, den dann aber keiner mehr lesen kann. 8o

    Hier mal meine etwas kürzere Version: