Batch-SCript nummeriert Bilder durch

Diskutiere Batch-SCript nummeriert Bilder durch im Programmierung Forum im Bereich Software Forum; Ich hab so ne Macke, dass ich bestimmte Bilder sammle. Manchmal downloade ich dann eine ziemlich große Zahl, die aber alle so schwer verrückte...
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Ich hab so ne Macke, dass ich bestimmte Bilder sammle.
Manchmal downloade ich dann eine ziemlich große Zahl, die aber alle so schwer verrückte Namen auch 20stelligen Zahlen-Codes haben.

Und deswegen suche ich ein Batch-Script, was diese Datein alle durch nummeriert.


Aber das soll es nicht gewesen sein.
Einen Zähler zu schreiben ist ja nicht schwer und dem zu sagen, wann er beginnen soll auch nicht.

Das Problem bei der Sache ist aber, dass er die Bilder auswählt und dabei keins nimmt, was schon umnummerriert ist.
Außerdem muss es erkennen, was die höchste Zahl ist.


Wenn ich also 5 Bilder habe, dann nummerriert er sie in 1 bis 5 durch und das Programm ist beendet.
Wenn dann aber noch 5 weitere Bilder dazu kommen, dann starte ich das Programm erneut und es muss diese neuen Bilder finden und ebenfalls durchnummerieren. Und dabei soll es das erste Bild mit 6 benennen, da die 5 ja schon existiert.

Hat da jemand eine Idee?


Code:
@echo off

:: Die Variable %größteZahl% soll die Ziffer fest legen, die in den Bilder-Namen am höchsten ist.


set /a zähler=%größteZahl%+1

:: Hier kommen die Befehlszeilen rein, die die Datein in die von %zähler% festgelegten Zahlen umbennen

set /a zähler=%zähler%+1

pause
Ich hab es nicht mal geschafft, eine Datei umbennen zu lassen:

Code:
ren "C:\Users\Name\Desktop\Meine Bilder\test\a.jpg" "C:\Users\Name\Desktop\Meine Bilder\test\1.jpg"
Warum geht das nicht?


Und das rausfiltern der größten Zahl wäre warscheinlich mit einer For-Schleife möglich. Aber wie, weis ich nicht -.-
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
ren "C:\Users\Name\Desktop\Meine Bilder\test\a.jpg" "1.jpg"

Tippst du: ren /? -> hilfe zum befehl ren.
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
Dann ist wahrscheinlich "Meine Bilder" eine Verknüpfung auf dem Desktop?
Du musst schon den richtigen Pfad eingeben zu dem Ordner, wo die Bilder liegen, ohne Verknüpfungen.

Zum Beispiel ist "Eigene Dateien\Eigene Bilder\" bei Win7 "C:\Users\Name\Pictures"
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Dann ist wahrscheinlich "Meine Bilder" eine Verknüpfung auf dem Desktop?
Du musst schon den richtigen Pfad eingeben zu dem Ordner, wo die Bilder liegen, ohne Verknüpfungen.

Zum Beispiel ist "Eigene Dateien\Eigene Bilder\" bei Win7 "C:\Users\Name\Pictures"
Nein, ich bin zur Sicherheit in den Ordner gegangen und hab dann den Pfad direkt kopiert. Und da ist das raus gekommen. Natürlich an Stelle von Name mein richtiger Name
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
Dann muss es auch klappen, denn ich hab das eben getestet bei mir.

Der Ordner liegt also auf deinem Desktop, d.h. du hast auf deinem Desktop einen Ordner angelegt (keine Verknüpfung!)?
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Dann muss es auch klappen, denn ich hab das eben getestet bei mir.

Der Ordner liegt also auf deinem Desktop, d.h. du hast auf deinem Desktop einen Ordner angelegt (keine Verknüpfung!)?
Ein völlig normaler Ordner auf dem Desktop.

Aber vieleicht liegts daran, dass du die bat in diesem Ordner hast?
Ich hab die nämlich auf dem Desktop liegen.
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
Auf dem Desktop liegen keine Ordner normalerweise, sondern Verknüpfungen. Hat der Ordner einen kleinen Pfeil? :D

Also, ich habe eben eine Verknüpfung auf dem Desktop angelegt, und dann die Eigenschaften der Verknüpfung aufgerufen.

Bild 1: das ist der falsche Pfad

Bild 2: das ist der richtige

Ich habe gar keine bat, ich hab das in der Kommandozeile eingegeben.

Mach mal einen Screenshot von deinem Desktop mit dem Ordner...
 

Anhänge

P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Ich habe diesen Ordner aber selber erstellt. Da liegt ein Ordner und das ist Tatsache.


Aber ich hab den Fehler gefunden. Denn eigendlich hieß der Ordner anders, allerdings war in dem Name ein Umlaut drin.
Deswegen habe ich den Ordner mal so benannt: "Schoene Bilder" und das entsprechend im Programm geändert. Es geht nicht. Wenn ich statt ö oe schreibe, geht es aber.

Aber wie kann ich das ändern? Ich hab es mal mit dem Variablen-Trick versucht:

Code:
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
Aber das funzt auch nicht.
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
Sorry, aber wer Ordner oder Dateien mit Umlauten benennt, der hat nach meiner Meinung selber Schuld. Damit befasse ich mich gedanklich nicht.

Nenn den Ordner halt "Tolle Bilder"...
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Was ist denn daran schlimm, Umlaute zu verwenden. WIndows kommt super mit klar, nur dieser Batch-Kram nicht.

Naja, zumindest weis ich jetzt, warum es nicht ging.


Weist du denn eine Antwort auf den Rest meiner Frage?
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Weis denn jemand anderes, wie ich trotzdem Umlaute verwenden kann?
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
Was ist denn daran schlimm, Umlaute zu verwenden. WIndows kommt super mit klar, nur dieser Batch-Kram nicht.
In USA, Japan und Indien wird's schwer mit Umlauten... auch für Windows, darum.

Nein, habe keine Antwort auf die anderen Fragen. Ich verstehe auch nicht, warum man sich mit diesem DOS-Relikt Batch-Datei beschäftigen sollte. Mach Visual Basic oder Visual C.

Übrigens ist es auch eher ungeschickt, Ordner und Dateien auf dem Desktop abzulegen, eher nicht gängige Praxis.
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
In USA, Japan und Indien wird's schwer mit Umlauten... auch für Windows, darum.

Nein, habe keine Antwort auf die anderen Fragen. Ich verstehe auch nicht, warum man sich mit diesem DOS-Relikt Batch-Datei beschäftigen sollte. Mach Visual Basic oder Visual C.

Übrigens ist es auch eher ungeschickt, Ordner und Dateien auf dem Desktop abzulegen, eher nicht gängige Praxis.
Ich mach C++, damit sollte es auch gehen. Aber bis ich soweit bin, ist es schlicht einfacher, das mit Batch zu machen, oder den ganzen Mist einzeln zu benennen.


Und der Desktop ist ein einfacher Ordner, der einfach nur als Desktop fest gelegt wurde. Was ist also so schlimm dran, dort einen Ordner zu erstellen?
Ich fang doch nicht an, einen Ordner irgendwo anders zu erstellen und dann noch zu verlinken. Was hat das für einen Zweck?
 
Slayer10061977

Slayer10061977

Mitglied seit
31.10.2006
Beiträge
3.430
Standort
Lübeck
...

Und der Desktop ist ein einfacher Ordner, der einfach nur als Desktop fest gelegt wurde. Was ist also so schlimm dran, dort einen Ordner zu erstellen?
Ich fang doch nicht an, einen Ordner irgendwo anders zu erstellen und dann noch zu verlinken. Was hat das für einen Zweck?
Nun der Windows-Desktop dient halt als Arbeitsoberfläche und nicht als Speicherort, Kartei, Archiv oder sonstwas...

Sämtliche Software die man installiert legt ja auch keine Programmdateien oder komplette Programmordner ab, sondern immer nur Verknüpfungen...

Der Hintergrund ist warscheinlich der, das man sämtliche Verknüpfungen gefahrlos löschen könnte, ohne sich seine Arbeitsdateien oder Programme zu killen...

Darum hat Microsoft seit Windows 9x versucht für jede Software und dessen Arbeits-/Speicherordner einen festen Ort zu nehmen...

Leider wurde dies nicht konsequent von den Softwareprogrammierern umgesetzt, sondern größtenteils ingnoriert!

Microsoft selbst hat dann das Chaos perfekt gemacht, indem sich die Speicherpfade von Win9x, W2k/Win XP und VISTA/7 alle stark von einander Unterscheide, d. h. es keinen zuverlässige einheitlichen Pfad gibt...:thumbdown

Gut, im Endeffekt bleibt es ja immer noch jedem selbst überlassen, wie man das Handhabt...;)
 
P

Palladin007

Threadstarter
Mitglied seit
30.07.2011
Beiträge
159
Ja, es ist die Arbeitsoberfläche und um schneller arbeiten zu können, lege ich Ordner einfach dort ab, als sie erst noch zu verlinken.
Ich muss dann zwar ab und zu mal aufräumen, aber damit muss ich halt klar kommen^^


Aber ich hab mal eine Frage zum Thema:

Wenn ich eine Sammlung Dateien habe. Alle durchnummeriert und es kommen einige Dateien noch dazu, dann will ich diese neuen Dateien raus gefiltert und als Variable gespeichert haben.

Ich hab dieses Programm geschrieben:

Code:
::@echo off

set kon=0
set varname=0

for /f %%i in ('dir /b *.jpg') do goto :Filter %%i

:filter
set /a kon=%kon%+1
if "%1"=="%kon%.jpg" (
    set /a kon=%kon%+1
) else (
    set /a varname=%varname%+1
    set dat%varname%="%1"
)
pause
Die For-Schleife soll einfach nur alle Dateien im Verzeichnis durch gehen.
Dabei soll aber für jede Datei ein Test durchgeführt werden.
Da die alten Dateien ja durchnummeriert sind, lasse ich in der For-Schleife auch einen Zähler laufen. Solange das Programm bei den alten Dateien ist, wird die If-Abfrage akzeptiert. Der Zähler läuft weiter und die nächste Datei wird ausgewählt.

Wenn das Programm dann aber bei einer neuen Datei ankommt, die nicht nach dem Muster (Ziffer.jpg und durchnummeriert) entspricht, dann läuft ein weiterer Zähler an.

Die Variable, die die Dateien, die neu sind, durchzählt, springt auf 1 und danach wird eine Variable, bestehend aus dieser 1 erstellt, die dann den Namen gespeichert hat, der aktuell in %i gespeichert ist.
Das hat den Sinn, dass später alle neuen Dateien in einer eigenen Variable gespeichert und abrufbar sind.

So kann man dann diese Dateien in eine For-Schleife schmeißen, die sie dann ebenfalls durchzählt, beginnen bei der letzten Ziffer der Dateien davor.


Aber was hab ich da falsch gemacht? %1 bleibt leer und deswegen kann in den Variablen dat1... auch nichts gespeichert werden.
Und da "leer" nicht gleich ein Dateiname ist, hört das ganze Programm auch schon nach der ersten Datei aus, was nicht Sinn und weck der Sache ist^^

Kann mir da wer helfen?
 
Zuletzt bearbeitet:
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
%1 ist ein so genannter Positionsparameter, d.h. den kann man nicht innerhalb des Skripts belegen, sondern der muss beim Aufruf des Skripts mit übergeben werden.
Also, angenommen, Dein Skript heißt "nummerieren.cmd", dann wäre beim Aufruf "nummerieren 1.jpg 2.jpg 3.jpg" der Inhalt von %1 die Zeichenkette 1.jpg.

die Zeile "set dat%varname%="%1" macht in dem geschilderten Zusammenhang m.E. keinen Sinn.

P.S. bitte tu mir den Gefallen und schreibe das Wort "leer" endlich mal richtig. Ich hatte es schon mehrfach bei Dir korrigiert, aber das hast Du leider nicht bemerkt ;-)
 
Zyndstoff

Zyndstoff

Mitglied seit
26.10.2010
Beiträge
2.445
Alter
57
Standort
BERLIN
P.S. bitte tu mir den Gefallen und schreibe das Wort "leer" endlich mal richtig.
:D ...wenn ich hier die (zumeist erschreckend weit verbreitete) schlechte Rechtschreibung anmahne, dann werde ich immer gerüffelt, ich solle nicht so kleinlich sein... :blush

Ich habe das aber sowieso aufgegeben und mich damit abgefunden, dass in diesem (und fast allen anderen) Forum ein unterirdisch schlechtes Deutsch vorherrscht. Gegen Windmühlen kämpft Don Quixote vergebens.
 
Thema:

Batch-SCript nummeriert Bilder durch

Batch-SCript nummeriert Bilder durch - Ähnliche Themen

  • GELÖST Batch script kopieren von Autostart in Ordner der nach Username benannt ist.

    GELÖST Batch script kopieren von Autostart in Ordner der nach Username benannt ist.: Hallo ihr Lieben, Zu meiner Sittuation: Ich versuche ein Script zu erstellen das den Inhalt der Autostart von mehreren Usern auf einem...
  • Batch sprites aus txt dateien laden und bewegen/ ist es realiesierbar ein 3d batch spiel zu scripten

    Batch sprites aus txt dateien laden und bewegen/ ist es realiesierbar ein 3d batch spiel zu scripten: Hallo Winboard Community, Meine frage ist denke ich klar nun ich will das ganze aus dateien laden Wegen der übersichtlichkeit und das mit den 3d...
  • Ausführungstiefe in Batch-Scripten unter Windows 10 Release 1607

    Ausführungstiefe in Batch-Scripten unter Windows 10 Release 1607: Wir verwenden in diversen Scripten verschachtelte Aufrufe bei denen in einem Batchscript andere Scripte oder Executables aufgerufen werden. Dieses...
  • script oder batch datei zum entpacken

    script oder batch datei zum entpacken: Hi, hoffe dass ist das Richtige Forum hierfür. Ich habe ein Verzeichniss mit einigen Unterverzeichnissen, diese wiederrum Unterverzeichnisse. In...
  • GELÖST Windows7 Batch-Script für automatische DynDNS Anmeldung - Hilfe benötigt

    GELÖST Windows7 Batch-Script für automatische DynDNS Anmeldung - Hilfe benötigt: Hi, seit neustem muss man sich bei dyndns.org alle 30Tage einmal manuell einloggen sonst wird der Hostname gelöscht. Auf dieser Seite fand ich...
  • Ähnliche Themen

    Oben