Automatisches umbenennen???

German support forum

Moderators: Hacker, Stefan2, white

Murphy
Member
Member
Posts: 124
Joined: 2005-02-20, 10:26 UTC

Post by *Murphy »

2kukulkan
AutoIt3 ist eine Scriptsprache, mit der man die Scripts selbständig ausführen kann, sobald AutoIt installiert ist.

Ich habe es dir mal kompiliert und hochgeladen. Ist eine EXE, die du an eine beliebige Stelle auf deiner Festplatte legen kannst. Dann passt du das Startermenü (oder meinetwegen auch einen Button) so an wie ich oben geschrieben habe. Achte dabei natürlich auf den Pfad zur EXE.

Teste das mal an und sieh mal obs funzt. Ich muss jetzt leider weg und kann erst morgen Mittag wieder antworten. Falls Probleme auftreten bitte immer genau posten, was du gemacht hast, dann findet man den Fehler schneller ;-)

Genug geredet, hier die EXE: http://rapidshare.de/files/3431511/Rename.exe.html

Auf den Button "FREE" drücken und dann warten bis der Downloadlink erscheint. OHNE Downloadmanager ziehen.

Grüße,
Murphy
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Autoit herunterladen, installieren, dann klappts auch mit dem nachbarn. ;)

http://www.autoitscript.com/autoit3/downloads.php

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Wo ist eigentlich der Vorteil von Autoit gegenüber herkömmlichen Programmiersprachen (abgesehen von den riesigen executables)? Kann man damit auch Plugins programmieren - ich fürchte ja :shock:
ricobautsch
Member
Member
Posts: 103
Joined: 2005-06-21, 00:42 UTC

VBScript-Lösung

Post by *ricobautsch »

Ich hätte da auch noch eine Lösung für die Aufgabe, die hier diskutiert wird, und zwar mit Hilfe eines VB-Script. Bei dieser Lösung muß man NICHTS runterladen und/oder installieren.

Einfach den folgenden Code in eine Datei mit Extension .vbs speichern und die ersten zwei Zeilen anpassen (SourceDir auf Pfad setzen, in dem die Dateien sind, die umbenannt werden sollen. TemplateDir ist der Ordner, in dem die Vorlagedateien liegen).
Die .vbs Datei lässt sich dann einfach starten.

Code: Select all

SourceDir = "c:\temp\script\quelle"
TemplateDir = "c:\temp\script\template"

Set fso = CreateObject("Scripting.FileSystemObject")
Set dict = CreateObject("Scripting.Dictionary")
renCount = 0

'create dictionary
Set fldr = fso.GetFolder(TemplateDir)
For Each f In fldr.Files
  dict.Add Mid(f.Name, 4), Mid(f.Name, 1, 3)
Next

'rename files
Set fldr = fso.GetFolder(SourceDir)
For Each f In fldr.Files
  key = Mid(f.Name, 4)
  val = dict.Item(key)
  if (val <> "") and (f.Name <> val & key) then
    f.Name = val & key
    renCount = renCount + 1
  end if
Next      

MsgBox renCount & " Datei(en) wurden umbenannt."
Sollten die Ordner variabel sein, dann kann man die ersten zwei Zeilen auch durch die folgenden ersetzen.

Code: Select all

SourceDir = WScript.Arguments(0)
TemplateDir = WScript.Arguments(1)
Nun erwartet das Script beim Aufruf zwei Parameter, SourceDir und TemplateDir. Damit ist es nun auch ein leichtes sich einen Button oder ähnliches im TC zu basteln, der das Script startet und Pfad im linken/rechten TC panel als Parameter übergibt.
User avatar
kukulkan
Junior Member
Junior Member
Posts: 34
Joined: 2005-02-24, 09:29 UTC
Contact:

Post by *kukulkan »

Erst mal Danke für die rege Anteilnahme an meinem Problem!

@Murphy
Ich habe glaub ich alles soweit installiert usw.
Wenn ich jetzt versuche das Script zu benutzen krieg ich eine Fehlermeldung. Hier sind die einzelnen
Schritte als "Screenshots" zum nachsehen.
http://www.pacal.de/daten/tcmd.jpg
diese Dateien will ich umbnennen.
http://www.pacal.de/daten/buttonbar.jpg
so sieht die Buttonbar aus.
http://www.pacal.de/daten/fehlermeldung.jpg
und das ist die Fehlermeldung.
Da hab ich doch bestimmt was flasch gemacht!
User avatar
kukulkan
Junior Member
Junior Member
Posts: 34
Joined: 2005-02-24, 09:29 UTC
Contact:

Post by *kukulkan »

@ricobautsch

"Nun erwartet das Script beim Aufruf zwei Parameter, SourceDir und TemplateDir. Damit ist es nun auch ein leichtes sich einen Button oder ähnliches im TC zu basteln, der das Script startet und Pfad im linken/rechten TC panel als Parameter übergibt."

...das hab ich nicht kapiert.

bei deinem Script kommt diese Meldung:
http://www.pacal.de/daten/script.jpg
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Ich meine, dass Du da wahrscheinlich einen copy/paste Fehler gemacht hast. Ich habe das abgeänderte Script bei mir getestet, und es läuft problemlos, und zwar mit genau Deinem Button für die 'rename.exe', nur eben mit 'rename.vbs'. Ich dachte erst, es könnte am Startverzeichnis liegen, stimmt aber nicht. Ich habe nur eine Möglichkeit gefunden, das Script aus dem Tritt zu birngen: Wenn die Namen schon existieren (sproch beim 2ten Durchlauf).

Versuchs mal einfach noch mal zu kopieren.

Code: Select all

SourceDir = WScript.Arguments(0)
TemplateDir = WScript.Arguments(1)


Set fso = CreateObject("Scripting.FileSystemObject")
Set dict = CreateObject("Scripting.Dictionary")
renCount = 0

'create dictionary
Set fldr = fso.GetFolder(TemplateDir)
For Each f In fldr.Files
  dict.Add Mid(f.Name, 4), Mid(f.Name, 1, 3)
Next

'rename files
Set fldr = fso.GetFolder(SourceDir)
For Each f In fldr.Files
  key = Mid(f.Name, 4)
  val = dict.Item(key)
  if (val <> "") and (f.Name <> val & key) then
    f.Name = val & key
    renCount = renCount + 1
  end if
Next     

MsgBox renCount & " Datei(en) wurden umbenannt." 
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Murphy
Member
Member
Posts: 124
Joined: 2005-02-20, 10:26 UTC

Post by *Murphy »

2kukulkan
Die Fehlermeldung in deinem letzten Bild sagt nur aus, dass keine Parameter übergeben wurden. Da dein Buttonbar-Eintrag aber richtig aussieht, kann ich dir im Moment leider nicht weiterhelfen... :-(

2ricobautsch
VBS lerne ich gerade, deswegen kenne ich mich noch nicht damit aus, die Fehlermeldung sieht mir aber genau nach demselben Fehler aus. Kann das hinkommen? Übrigens: Einen Zähler wollte ich auch erst noch einbauen, nur weiß ich nicht, wei oft das Script gebraucht wird, kann nach einer Zeit ganz schön nervig werden, immer die Message-Box wegzuklicken ;-)

Falls jemandem etwas dazu einfällt würde ich mich auf Feedback freuen. War bis es wieder hell war auf einer Feier und bin gerade erst aufgestanden, habe deswegen den Kopf noch nicht auf richtiger Temperatur, vielleicht liegt es auch daran? ;-)

Grüße,
Murphy
User avatar
kukulkan
Junior Member
Junior Member
Posts: 34
Joined: 2005-02-24, 09:29 UTC
Contact:

Post by *kukulkan »

[face=arial]ES klappt!!!!!!!!!!!!!!!!!!!!!

Super Forum hier!
[/face]
ricobautsch
Member
Member
Posts: 103
Joined: 2005-06-21, 00:42 UTC

Post by *ricobautsch »

Das VB-Script erwartet als ersten Parameter das Verzeichnis mit den Dateien, die umbenannt werden sollen, als zweiten Parameter das Template-Verzeichnis. Also wären die Button-Parameter in der Reihenfolge %T %P richtig, wenn der Cursor bei Ausführung des Scripts in dem TC-panel steht, in dem die Template-Dateien liegen.

@Murphy
Die Fehlermeldung kommt tatsächlich, wenn nicht mindestens 2 Parameter übergeben werden. Das Script setzt die 2 Parameter einfach voraus, könnte man natürlich noch mehr Fehlertoleranz einbauen, indem man zum Beispiel WScript.Arguments.Count beim Start prüft.

Die MsgBox kann man ja einfach aus dem Script entfernen, wenn man sie nicht haben will. Dann bekommt man aber keinerlei Feedback, dass die Aktion erfolgreich abgeschlossen wurde.

@Sheepdog
Auch wenn die Namen schon existieren (sprich beim 2ten Durchlauf) sollte das Script nicht aus dem Tritt kommen. Das war nur in dem Script der Fall, welches ich zuerst gepostet habe, 5 minuten später aber korrigiert habe.
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

ricobautsch wrote:@Sheepdog
Auch wenn die Namen schon existieren (sprich beim 2ten Durchlauf) sollte das Script nicht aus dem Tritt kommen. Das war nur in dem Script der Fall, welches ich zuerst gepostet habe, 5 minuten später aber korrigiert habe.
Stimmt, ich habe auf der Fehlersuche noch was anderes gemacht: Die Dateien mit den alten und den neuen Namen habe ich einfach ins selbe Verzeichnis geschoben, aber das ist natürlich auch quatsch. Es ging mir nur darum, die Fehlermeldung zu reproduzieren, was mir aber nicht gelang.

Und offenbar war es ein copy/paste Fehler. ;)

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Post Reply