Umbenennen von Ordnern und Dateien per BATCH???

German support forum

Moderators: Hacker, Stefan2, white

User avatar
Lupan
Member
Member
Posts: 136
Joined: 2003-03-12, 08:20 UTC

Umbenennen von Ordnern und Dateien per BATCH???

Post by *Lupan »

Hi,
ich versuche vergeblich mir ´n Button zu erstellen, der mir die Markierten Dateien bzw. Ordner umbenennt. :evil:

Im Prinzip ist es ganz einfach: Ich will ein paar Dateien markieren, dann sollen die Mittels eines Knopfdruckes (Button in Buttonbar) umbenannt werden.

z.B. von Anschreiben.doc in Anschreiben-NEU.doc

Kann doch nicht so schwer sein... hab´s auch schon mit einer CMD probiert. da kommt aber noch mehr Müll raus.

Hat jemand ne Idee??

Ich will NICHT über das Mehrfach umbenennen-Tool gehen! (dauert zu lange!) 8)

oder gibt´s ne Mölgichkeit einen Button so zu belegen, daß er eine bestimmt Regel aus dem Umbenennen-Tool ausführt?? Das wäre eigentlich das NON PLUS ULTRA!!! :lol:
Möge die Technik mit Dir sein.
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Na ja, eine cmd macht es ganz bestimmt möglich, poste mal deine version, man wird es hier unter die lupe nehmen ;-)
MUT kannst du durch AutoHotkey automatisieren.
I switched to Linux, bye and thanks for all the fish!
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Schwebte Dir sowas wie die folgende Batch vor?

Code: Select all

for /f "delims=" %%a in (%1) do copy %%~fa %%~naneu.%%~xa
Ohne Bacth lässt sich das (m.E.) nicht realisieren, weil Du nicht vernünftig an die Dateiliste herankommst.

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
Lupan
Member
Member
Posts: 136
Joined: 2003-03-12, 08:20 UTC

Post by *Lupan »

Um das Prob. mit der Dateiliste zu umgehen kopierte ich alle ausgewählten Dateien auf die HD in einen bestimmten Ordner, dann rename *.* in *-NEU.* dann wieder zurück kopieren.

Aber schon bei dem rename gab´s Probs.... ausserdem VIEEEEL zu langsam, da ja ALLES kopiert werden muss....

das ganze hab´ ich in eine cmd gepackt.. da ich so besser klar komme.... ;-)
Möge die Technik mit Dir sein.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

OK, dann baue ich den Ansatz von Sheepdog noch aus:

Du brauchst 2 Dinge:

1. CMD-Datei (z.B DoRename.cmd)

Code: Select all

for /f "delims=" %%a in ('TYPE "%1"') do ren %%~fa %%~na-NEU%%~xa
2. Einen Button mit

Code: Select all

 Befehl : <Pfad dahin>\DoRename.cmd
Parameter : "%L"
Wenn du nun die gewünschten Dateien markierst, führt ein kurzer Druck auf den Knopf die Umbenennung aus !

(Wenn du DoRename.cmd ins Windows Verzeichnis legst brauchst du keinen Pfad.)
#5767 Personal license
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

sqa_wizard wrote:OK, dann baue ich den Ansatz von Sheepdog noch aus:


Du brauchst 2 Dinge:

1. CMD-Datei (z.B DoRename.cmd)

Code: Select all

for /f "delims=" %%a in ('TYPE "%1"') do ren %%~fa %%~na-NEU%%~xa
Danke sqa_wizard für Deine Erklärung.

Das 'type' ist übrigens gar nicht nötig, der Button funktioniert mit der Batchdatei, wie in meinem ersten Posting beschrieben. Ich hatte mir eingebildet, dass jedem klar sein müsste, das man diese Batch per Button mit Parameter %l aufrufen muss. :oops:

Wen es interessiert, hier nochmal eine kurze Erklärung:

for /f--> mache die Folgenden Befehle (das ren ....) mit jeder übergebenen Zeichenkette (in diesem Falle jedem Dateinamen)

"delims="--> Leerzeichen ist nicht Ende der Zeichenkette (wichtig für Dateinamen mit Leerzeichen, die werden sonst nur zur Hälfte übergeben)

%%a in--> Variable, in die der Dateiname eingelesen wird.

(%1) -->erster übergenbener Parameter, hier die Datei, welche die Liste der markierten Dateien enthält.

do --> leitet den Befehl ein

ren --> DOS Befehl rename

%%~fa--> bedeutet: erzeuge einen kompletten Dateinamen aus %%a, wobei ~ dafür steht, dass %%a umgewandelt wird, und f steht für den kompletten Dateinamen.

%%~na-NEU%%~xa --> bedeutet: erzeuge aus %%a den Namen, hänge -NEU dran und hänge dann hinten noch die Dateiendung von %%a an (n- steht für den reinen Namen (ohne Pfad oder Erweiterung, x steht für die Erweiterung)

Für weitere Erklärungen einfach mal die Winodws -Hilfe für "for benutzen

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
Lupan
Member
Member
Posts: 136
Joined: 2003-03-12, 08:20 UTC

Post by *Lupan »

... und warum funzt das nicht mit ORDNERN?????
(REN und nich rename lautet der Befehl.... jetzt fällts mir wieder ein.... ;-)
Möge die Technik mit Dir sein.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Das 'type' ist übrigens gar nicht nötig
Doch, ohne wird versucht die Listendatei selbst umzubenennen ...
#5767 Personal license
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

... und warum funzt das nicht mit ORDNERN?????
Weil Ordner keine Dateien sind...
Last edited by sqa_wizard on 2005-11-08, 15:34 UTC, edited 1 time in total.
#5767 Personal license
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

sqa_wizard wrote:
Das 'type' ist übrigens gar nicht nötig
Doch, ohne wird versucht die Listendatei selbst umzubenennen ...
Nur wenn Du das %1 in Anführungszeichen setzt. Versuch mal bitte:

Code: Select all

for /f "delims=" %%a in (%1) do ren %%~fa %%~na-NEU%%~xa 
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 »

Lohnt es sich wirklich auf Benutzerebene sowas zu programmieren, nur um ein paar Klicks im Mehrfachumbenenntool zu sparen? Damit sich das lohnt, muss das schon eine sehr sehr häufige Aufgabe sein.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Nur wenn Du das %1 in Anführungszeichen setzt.
Unter win2000 kein Unterschied ... ohne TYPE wird die Listen-Datei direkt aufgelöst.

Damit sich das lohnt, muss das schon eine sehr sehr häufige Aufgabe sein.
Nur wenn der anzuhängende Text immer der Gleiche ist !
#5767 Personal license
User avatar
Lupan
Member
Member
Posts: 136
Joined: 2003-03-12, 08:20 UTC

Post by *Lupan »

2 Lefteous:
Ich bin, wie viele andere hier wahrscheinlich auch!, ein POWERUSER.

Die Anzahl der Dateien wo ich das brauche kann ich nicht sagen. Mir kommts darauf an, nochmal ´n Tick schneller zu werden. (bin ein kleiner TUNER) ;-)

Mit der Zeit (und dem Tuning) kann man schon etwas Zeit sparen... und diese dann für ´ne gemütliche Tasse Kaffee nutzen.... ;-)
Möge die Technik mit Dir sein.
Wuffi
Junior Member
Junior Member
Posts: 14
Joined: 2003-10-05, 16:45 UTC
Location: Hamburg

Post by *Wuffi »

Man kann aber seine Zeit auch mit Tunen verdödeln...
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2Wuffi
2Lupan
Man kann aber seine Zeit auch mit Tunen verdödeln...
Darauf wollte ich hinaus. Viele Leute schätzen die Zeit, die sie für Effizienzsteigerungen aufwenden falsch ein.
Man muss das aber von Einzelfall zu Einzelfall entscheiden. War nicht böse gemeint, sollte nur mal zum Nachdenken anregen.
Post Reply