bigsanch
Goto Top

BATCH For Schleife Value mit führender Null hochzählen

Hi @ all

Ich hab mal wieder eine Frage, da ich gerade ehrlich gesagt zu faul zum intensiv suchen bin und ich auf den ersten Google Ergebnissen nichts entsprechendes gefunden habe.

Ich habe einen Code, mit welchem ich Dateien jeglicher Art massen umbenennen, kopieren und so weiter kann. Das Umbenennen ist nu gerade das Problem.
Generell geht der Code nur Feinheiten klappen nicht.

Die Variablen zum Umbenennen die ich verarbeite sind:
  • PfadDerDateienRekrusiv
  • DateiTypenAngaben
  • NameDerNeuenDateien
  • FortlaufendeNummer

Diese Variablen hole ich mir per set /p vom User, da es sich immer um andere Dateien, Namen und so handeln kann.
Als Beispiel, jetzt mal für Bilder die Eingabe vom User:
  • PfadDerDateienRekrusiv --> C:\Bilder
  • DateiTypenAngaben --> *.jpg, *.png, *.gif
  • NameDerNeuenDateien --> BilderNeu
  • FortlaufendeNummer --> 0001 (Das ist mein Hauptproblem)

Umbenannt werden die Dateien durch eine Schleife, in welcher der Dateiname zusammengeführt wird und der Wert FortlaufendeNummer angehängt wird.
Grundsätzlich so gestaltet: * BilderNeu0001.jpg .....

So mein Problem ist, dass die User Eingabe FortlaufendeNummer 0001 ist und ich wenn ich in der Schleife den Wert hochzähle mit
set /a FortlaufendeNummer+=1
, dann kommt da nur ne 2 und nicht 0002 raus.
Gleich vorab, ja ich hab gegoogelt und weis auch dass man mit %FortlaufendeNummer:~-4% oder so arbeiten könnte, was mir aber nichts bringt,
da beim nächsten Mal die Eingabe auch nur 01 oder 0000005 sein könnte, das weis ich vorher nie.

Ich hoff jemand hat nen guten Ansatz für mich. Danke face-smile

Content-ID: 386002

Url: https://administrator.de/contentid/386002

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

juhu01
juhu01 10.09.2018 um 08:17:17 Uhr
Goto Top
FortlaufendeNummer="$(printf '%03d' "zaehler")";
echo $FortlaufendeNummer

Du kannst im printf auch weitere Variablen angeben so dass du einen kompletten formatierten String bekommst.
Ach ja das Kommando expr wird auch nützlich sein face-wink

Viel Spass und 'man printf'
Friemler
Friemler 10.09.2018 um 08:51:20 Uhr
Goto Top
Moin BigSanch,

Zitat von @BigSanch:

...weis auch dass man mit %FortlaufendeNummer:~-4% oder so arbeiten könnte

Mache einen Zwischenschritt, dann passt es:
set "FortlaufendeNummer=000%FortlaufendeNummer%"
set "FortlaufendeNummer=%FortlaufendeNummer:~-4%"

Grüße
Friemler
Pjordorf
Pjordorf 10.09.2018 um 09:58:03 Uhr
Goto Top
Hallo,

Zitat von @BigSanch:
zu faul zum intensiv suchen bin
Das machen wir doch gerne für dich, Unsere Zeit = deinen Zeit, du kannst über uns jederzeit Verfügen.

und ich auf den ersten Google Ergebnissen nichts entsprechendes gefunden habe.
Das ist das mit dem suchen. Es kostet mitunter einfach Zeit

Das Umbenennen ist nu gerade das Problem.
Schau dir mal https://www.multipleimageresizer.net/ an, aber bedenke auch dafür brauchst du Zeit.

Gruß,
Peter
BigSanch
BigSanch 10.09.2018, aktualisiert am 11.09.2018 um 00:13:26 Uhr
Goto Top
@Friemler

Hi, Danke, aber das ist ja genau das was ich nie vorher weis, sind es 3 oder 4 Stellige Zahlen oder so. Trotzdem Danke
BigSanch
BigSanch 11.09.2018 aktualisiert um 00:14:17 Uhr
Goto Top
@juhu01

Hi und Danke hab mir Expression ma angeschaut, sehr gutes Tool, mal abgespeichert face-smile
Aber leider ist das auch net ganz das was ich suchte, denn ich will das einfach nur über eine .bat Datei mit einfachem Code realisieren.
Hab es aber nun selber hinbekommen, Danke trotzdem.

Da bei einem addieren mit set /a alle Nuller gelöscht werden hab ich einfach 10 davor geschrieben, addiere alles und nehme dem String dann die 10 einfach wieder weg und als einfacher String gibt er dann die Nuller wieder aus.
BigSanch
BigSanch 11.09.2018 um 00:30:59 Uhr
Goto Top
@Pjordorf

Hallo

Also als erstes Mal ich meine das was ich schreibe zwar ernst, aber da ich dich nicht kenne ist das nur der erste Eindruck über Dich.
Ich hasse es, wenn man sich in einem Forum anmeldet um anderen zu helfen und dann außer Klug###erei nicht viel schreibt.
Wenn du nen schlechten tag hattest, bitte, aber erstens ist das das Ziel eines Forum, anderen zu helfen, auch wenn andere mal faul sind.
Denn wenn das nicht so ist, braucht man keine Foren, denn irgendwann findet man jede Lösung.

Zitat von @Pjordorf:

Das machen wir doch gerne für dich, Unsere Zeit = deinen Zeit, du kannst über uns jederzeit Verfügen.
Nun ja, sollte ja auch so sein, denn wie gesagt, sonst bräuchte man ja net. Und wer sagt dir, wie viel Zeit ich investiert habe, denn meine Aussage war nicht ich hatte nichts gesucht, sondern nur dass ich grad auch mal zu Faul zum INTENSIV suchen bin. Da es aber manchmal entweder zu spät ist, oder man einfach nicht den Richtigen Suchbegriff zur Hand hat, kann es auch mal sein, dass man nach sogar längerem Suchen, trotzdem nichts findet. Aber gemerkt, werde hoffentlich nie wieder was hier posten müssen, da ich dich ja sonst überfordere, meine Aufgaben zu lösen.

Das ist das mit dem suchen. Es kostet mitunter einfach Zeit
Oder wie gesagt, ist es zu spät oder man weiß grad net so genau nach was man eigentlich sucht. Aber da du ja so genau wusstest, wie viel Zeit ich bereits investiert habe, nehme ich diese Kritik gerne entgegen.

Schau dir mal https://www.multipleimageresizer.net/ an, aber bedenke auch dafür brauchst du Zeit.
Hmm, nettes Ding, brauch ich aber leider nicht, denn da gibts weit aus besseres.
Da ich mir jetzt aber zu viel Zeit nehmen musste um auf diese Seite zu schaun, muss ich jetzt leider aufhörn, sonst verplemper ich deine zeit noch viel zu sehr und dann wäre dein platz in einem Forum ja echt fraglich, was?

Dennoch danke ich dir für deine investierte, sinnlos verschwendete und absolut nutzlos ausgegeben Zeit, welche ich dir leider nun nicht mehr erstatten kann.

M(an)fG
HORST