Mehrfach-Umbennen-Tool im "Batch-Modus"?

German support forum

Moderators: Hacker, Stefan2, white

User avatar
Teal'c
Junior Member
Junior Member
Posts: 70
Joined: 2003-02-08, 05:05 UTC

Post by *Teal'c »


Greetz Teal'c
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *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
Teal'c
Junior Member
Junior Member
Posts: 70
Joined: 2003-02-08, 05:05 UTC

Post by *Teal'c »

.......so isses natuerlich noch besser :)
Greetz Teal'c
B_J
Junior Member
Junior Member
Posts: 3
Joined: 2007-07-16, 12:47 UTC

Post by *B_J »

Ich habe sheepdogs Skript noch etwas um weitere Zeichen erweitert; Probleme gibt's u. a. mit den reservierten Zeichen "(" u. ")".
Wie kann ich die ersetzen?

Probleme gibt es auch dann, wenn der neue Dateiname schon besteht, also z.B.:

"Datei Name.Ext" würde zu "Datei_Name.Ext".

Wenn eine Datei mit diesem Namen schon besteht läuft das Skript in eine Endlosschleife.

- Wie kann man da einen Schleifenzähler einbauen, der nach n Durchläufen aufhört?
- Noch eleganter wäre ein zusätzlicher Eintrag des voll qualifizierten Dateinamens in ein Errorlog.


Danke

B_J
User avatar
Dalai
Power Member
Power Member
Posts: 9968
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Ich habe sheepdogs Skript noch etwas um weitere Zeichen erweitert; Probleme gibt's u. a. mit den reservierten Zeichen "(" u. ")".
Wie kann ich die ersetzen?
Das geht mit dem Zirkumflex (^).
Den vor die Klammern schreiben, also ^( bzw. ^), dann werden auch die Klammern als Zeichen erkannt.
Probleme gibt es auch dann, wenn der neue Dateiname schon besteht, also z.B.:

"Datei Name.Ext" würde zu "Datei_Name.Ext".
Das geht z.B. mit

Code: Select all

if exist %%a
Dann muss man irgendwie abbrechen, oder was ausgeben. Ich weiß nicht, ob man diese Datei überspringen könnte...

- Wie kann man da einen Schleifenzähler einbauen, der nach n Durchläufen aufhört?
Einen Zähler kann man einbauen, ist aber etwas aufwendiger.

Code: Select all

setlocal ENABLEDELAYEDEXPANSION
set /a zaehler=0
Und bei (erfolgreichem) Umbenennen muss dann

Code: Select all

set /a zahler=!zaehler! + 1
rein.

Ausgeben geht dann mit !zaehler!.
Am Ende das endlocal nicht vergessen.

Ich glaube, wenn du das Skript wirklich erweitern oder umbauen willst, solltest du dir Seiten im Netz suchen, die sich mit Batchprogrammierung beschäftigen. Ich verweise da einfach mal an eine Suchmaschine deiner Wahl.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply