Autor |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Hallo Freunde, ich bin etwas am Verzweifeln es sollte eigentlich einfach sein aber...
Ich möchte mit "Datei ändern" den Dateinamen ändern (umbenennen), das funktioniert einwandfrei wenn der Dateiname keine Leerzeichen enthält.
Mit Leerzeichen geht’s einfach nicht. Ich habe alles probiert mit Anführungszeichen und ohne mit Pfadangabe usw. Was mache ich falsch hat einer eine Idee?
Habe noch eine Amerkung ich übergebe alter Name und neuer Name über Variablen.
Gruß Eberhard
Der Post wurde 1 mal editiert, zuletzt von Eberhard am 25.09.2016 - 10:49.
|
Beitrag vom 25.09.2016 - 10:21 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Hallo Eberhard,
du ich hab gerade wirklich alles ausprobiert & bei mir funktioniert das Umbenennen von Dateien ohne Probleme.
Ich hab es mit einem, aber auch mit mehreren Leerzeichen im alten & neuem Dateinamen getestet.
Hab erst direkt im Befehl Datei ändern den neuen & alten Dateinamen angegeben & anschließend auch
nochmal die Namen & den Pfad per Variable übergeben & auch das klappte ohne Probleme.
Ich kann dir also nur helfen, wenn ich mir den Teil deines Skriptes anguck, der für die Umbenennung zuständig ist.
Wäre also schön, wenn du uns den Teil oder auch das ganze Skript mal zeigst. Denn ich vermute, dass da der Fehler liegt.
|
Beitrag vom 25.09.2016 - 14:32 |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Erst mal Danke für die Antwort
hier mal mein Script, es geht da und dort bestimmt einfacher
Setze in [V]: 'Dateiname umbenennen'
Setze in [cfg]: '[cX.AktPfad]DateinameDatum.cfg'
Setze in [cfg]: 'd:CommontotalcmdpluginsDateinameDatum.cfg'
INI-Datei lesen: [cfg], Abschnitt 'cfg', 'VS' in [VS]
Setze in [Datei]: '[Skript.CmdLine]'
Setze in [Dat]: '[Datei.Datum [Datei]]'
Wenn Text leer '[Skript.CmdLine]'
Meldung "Die ist ein Zusatztool für den Totalcomander. Es dient zu Namensumwandlung von Dateien und Verzeichnissen. Verwendet wird das Dateidatum und daraus erzeugt wird siehe Beispiel.¶¶Dateiname alt ergibt neu: JJJJ-MM-TT - Datei/Verzeichnisname¶¶exe als Baricon einfügen und mit Parameter %P%N konfiguri eren.¶¶Ausführung:¶Auf Datei oder Verzeinis gehen und click auf BarIcon. ¶Eine Stabelverarbeitung ist nicht mölich.¶" (Titel: 'DateinameDatum - Version 1.0', Info, OK)
Beende Skript
Ende Wenn
Bearbeite '[Dat]' in [T] (Trennzeichen '.', Linker Teil)
Bearbeite '[Dat]' in [M] (Trennzeichen '.', Rechter Teil, max. Länge '2')
Bearbeite '[Dat]' in [J] (von hinten, Trennzeichen '.', Rechter Teil)
Bearbeite '[Datei]' in [DN] (von hinten, Trennzeichen '', Rechter Teil)
Bearbeite '[Datei]' in [DP] (von hinten, Trennzeichen '', Linker Teil)
Setze in [cX.AktPfad]: '[DP]' ('' dazu)
Wenn Textvergleich '[VS]=-1'
INI-Datei lesen: [cfg], Abschnitt 'cfg', 'V', Vorgabe='[V]' in [V]
>>...usw...<<
| Erstellt mit cX2Web - cX4 WebExport (116 Skriptzeilen, cX 4.0.8.1 Premium)
evtl kannst Du einen Fehler entdecken?
Gruß Eberhard
Der Post wurde 4 mal editiert, zuletzt von Eberhard am 25.09.2016 - 17:49.
|
Beitrag vom 25.09.2016 - 17:04 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Hab deine Antwort erst gerade bemerkt, sorry.
Kannst du dein Skript bitte nochmal im cX2Web-Format zeigen, dass geht auch ganz einfach.
- Öffne dein Skript im ClickEXE-Editor.
- Klicke auf irgendeineZeile in deinem Skript.
- Drücke ''STRG'' + ''A'', dadurch werden alle Zeilen, also dein gesamtes Skript ausgewählt.
- Klicke im Menü oben im ClickEXE-Editor auf ''Extras'' und dann auf ''cX2Web (Codeaustausch ...)''
und zuletzt auf ''Makierte Zeilen inkl. Forumscode in Zwischenablage''
- Komm nun wieder hier ins Forum zurück & erstell eine Antwort.
Anstatt eines Textes, den du sonst im Feld ''Nachricht'' eingeben würdest, klickst du nun auf die
rechte Maustaste und fügst den Inhalt der Zwischenablage, also dein Skript im cX2Web-Format,
durch Klicken auf ''Einfügen'' ein.
Anschließend nur noch auf ''Speichern'' drücken und alle können nun dein Skript ganz einfach
im eigenen ClickEXE-Editor einfügen & anschließend ausführen.
Hier ein Beispiel für ein Hallo-Welt-Programm :
1 Meldung "Hallo Welt" (Titel: 'Meldung', OK)
| Erstellt mit cX2Web - cX4 WebExport (1 Skriptzeile, cX 4.0.8.1 Premium)
|
Beitrag vom 25.09.2016 - 17:42 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Ich zerpflücke gerade dein Skript um es überhaupt einmal zu starten.
Guck einfach um 21 Uhr (wenn möglich) hier nochmal vorbei, bis dahin sollte ich
hoffentlich irgendwas hinbekommen haben.
MfG
FiNCH
|
Beitrag vom 25.09.2016 - 18:21 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Hallo Eberhard,
du ich hab dein Skript sehr stark gekürzt & musste auch einige Variablen vorgeben, da ich das Skript ansonsten
nicht hätte zum Laufen bekommen. Bitte probiere es mal bei dir, denn bei mir läuft es. Sollte es bei dir aber nicht
laufen, dann liegt der Fehler zumindest nicht im Skript oder bei .
Und vergiss nicht auf Laufwerk (C) eine neue Datei mit dem Namen ''Textdokument 1.txt'' zu erstellen.
Wichtig dabei, dass du das Leerzeichen zwischen dem "t" & der "1" nicht vergisst, denn darum geht es ja.
Das Skript macht nun nichts weiter als die Datei ...
C:\Textdokument 1.txt
... in den folgenden Dateinamen umzubenennen :
2016-09-25 - (K) - Textdokument.txt
Ich wusste nicht was in der Variablen [K] steht, also hab ich stattdessen im neuen Dateinamen einfach ''K'' in Klammern gesetzt, also (K).
Hier aber nun endlich das Skript :
|
|
Beitrag vom 25.09.2016 - 19:27 |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Danke erst mal ich schaue und probiere es aus.
Ziel des Scriptes soll sein
- Datei mit Pfad einlesen
- dann per Eingabe den Namen ändern (z.B von d:\Scan.pdf in d:\2016-09-25 - DO - Zusatz1 - Zusatz2.pdf)
- dabei wollte ich das Dateidatum oder meine eigenen Eingaben nehmen
- diverse Vorgaben werden in einer cfg Datei gespeichert
Es funktioniert, wie schon gesagt alles, wenn Dateiname keine Leerzeichen enthält
Ich vermute das irgendwas nicht korrekt übergeben wird, da die Funktion "Datei ändern" mit von Hand eingegebenen Pfaden korrekt funktioniert, dass habe ich selbstverständlich alles probiert.
Als denn bis später
Gruß Eberhard
|
Beitrag vom 25.09.2016 - 19:48 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Ich hab dein Skript nochmal angeguckt & nun nur 3 kleine Veränderungen vorgenommen,
so dass ich es komplett starten konnte & nicht so stark gekürzt wie im vorigen Versuch.
Und auch diesmal klappt das Umbenennen einer Datei mit einem Leerzeichen ohne Probleme.
Also liegt der Fehler wohl nicht in deinem Skript,
aber probier trotzdem bitte auch nochmal dieses nur leicht veränderte Skript aus,
vielleicht läuft es ja bei dir garnicht.
|
|
Beitrag vom 25.09.2016 - 19:48 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Versteh ich dich richtig, wenn du im Befehl Datei ändern den alten bzw. neuen Dateinamen direkt eingibst,
also keine Variablen, dann funktioniert es ?
Also z.B. bei Datei :
d:\Scan.pdf
... und bei Umbenennen in :
d:\2016-09-25 - DO - Zusatz1 - Zusatz2.pdf
Beides von Hand direkt eingegeben & es läuft ?
Ja, dann ist es definitiv ein Übergabe-Fehler !
|
Beitrag vom 25.09.2016 - 19:55 |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Habe es schnell mal getestet
es liegt irgendwie an der Übergabe '[Skript.CmdLine]'
wenn ich deine Eingabe übergebe funktioniert es, auch mit Leezeichen, aber nicht wenn die Datei mit Pfad per cmdline übergeben wird
evtl. werden Anführungszeichen übergeben oder nicht?
Ich habe mir gerade die Übergabe mit einer Meldung anzeigen lassen, es werden Anführungszeichen übergeben die müssen irgendwie weg, dann könnte es funktionieren.
Der Post wurde 1 mal editiert, zuletzt von Eberhard am 25.09.2016 - 20:15.
|
Beitrag vom 25.09.2016 - 20:09 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Wenn ich das Skript unverändert starte, kommt die Meldung ... & das Skript beendet sich wieder.
Liegt wohl daran, dass ich es direkt im Editor ausführe, also die 4 Zeilen deaktivieren & es läuft.
Ich hab es auch auf ''[Skript.CmdLine]'' eingegrenzt, denn ansonsten klappt einfach alles.
Also wenn es nun nur noch an den Anführungszeichen liegt, dann entferne sie & das Problem ist gelöst.
Ach, allerdings ist die Variable ''[File]'' leer bzw. wird im ganzen Skript nirgends gefüllt.
Das hat zwar keinen Einfluss auf das Umbenennen, aber ersetzt man die Variable ''[File]'' durch ''[Datei]'',
dann erhält man zum einen die Ausgabe im Anzeigefenster & ganz unten in der 3. Zeile der Meldung steht dann auch etwas.
|
Beitrag vom 25.09.2016 - 20:28 |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Es ist noch einiges zu viel im Script, dass ist mir bekannt auch sind noch viele Kontrollmeldungen aktiviert welche nicht benötigt werden, aber ich muss erst mal die Anführungszeichen wegbekommen dann wird es schon gehen.
Bei "Berarbeiten" gibt es sowas hat aber nicht funktioniert.
Na morgen gehts weiter.
Gruß Eberhard
|
Beitrag vom 25.09.2016 - 20:31 |
|
|
|
217 Beiträge - click.EXE Süchtiger
|
|
|
Mit dem Bearbeite-Befehl kann man die Anführungszeichen entfernen, es gibt aber zwei Möglichkeiten :
Die 1. wäre einfach den Haken bei ''Anführungszeichen entfernen'' zu setzen, aber dadurch werden
nur die Anführungszeichen am Anfang & Ende des Textes entfernt.
Bessere wäre also die 2. Möglichkeit. Bei der werden alle Anführungszeichen durch Nichts ersetzt, also entfernt.
Guck dir bitte das folgende Beispiel-Skript von mir an, da siehst man den Unterschied ganz deutlich :
|
So & nun ist auch erstmal Schluss für heute 
Ich wünsche dir & allen Beobachtern noch einen schönen Abend & eine gute Nacht.
Bis zum nächsten mal 
MfG
FiNCH
|
Beitrag vom 25.09.2016 - 21:13 |
|
|
|
50 Beiträge - Fortgeschrittener Clicker
|
|
|
Hallo FiNCH
es funktioniert mit der Version "Bearbeiten..suchen von " ersetzen durch [] !
Jetzt kann ich mein Script von allen unsinnigen Meldungen bereinigen und dann Nutzen, Dank Deiner Hilfe.
Alles ist SUPER!
Dank nochmals
MfG Eberhard
|
Beitrag vom 26.09.2016 - 05:18 |
|