Dateiname per Batchfile verarbeiten (batchfile für suberversion)
Hallo zusammen,
dies ist mein erster Post in diesem Forum und ich hoffe alles von Anfang an richtig zu machen, wenn nicht entschuldigt bitte meine Fehler!
Ich bin in unserer Abteilung mit der automatisierung von Subversion / TortoiseSVN beauftragt worden.
Leider kenne ich mich mit Batch programmierung nicht wirklich aus.
Für dieses Batchfile benötige ich eine abfrage wie ein Dateiname lautet, besser gesagt wie ein Teil dieses Namens lautet. Darauf wird dann entsprechen reagiert.
bsp.:
d:\... ...\L01_c02
Nun möchte ich per Batch den letzten teil des Pfads "lesen". Wenn der jetzt z.B. Lo1_c02, L01_c03 oder L02_c01 lautet muss entsprechend darauf reagiert werden. Leider weiß ich die entsprechenden Befehle für Batch nicht.
Ich hoffe mir kann schnell jemand helfen!
truespin
dies ist mein erster Post in diesem Forum und ich hoffe alles von Anfang an richtig zu machen, wenn nicht entschuldigt bitte meine Fehler!
Ich bin in unserer Abteilung mit der automatisierung von Subversion / TortoiseSVN beauftragt worden.
Leider kenne ich mich mit Batch programmierung nicht wirklich aus.
Für dieses Batchfile benötige ich eine abfrage wie ein Dateiname lautet, besser gesagt wie ein Teil dieses Namens lautet. Darauf wird dann entsprechen reagiert.
bsp.:
d:\... ...\L01_c02
Nun möchte ich per Batch den letzten teil des Pfads "lesen". Wenn der jetzt z.B. Lo1_c02, L01_c03 oder L02_c01 lautet muss entsprechend darauf reagiert werden. Leider weiß ich die entsprechenden Befehle für Batch nicht.
Ich hoffe mir kann schnell jemand helfen!
truespin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 88048
Url: https://administrator.de/contentid/88048
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
7 Kommentare
Neuester Kommentar
Moin und willkommen im Forum,
Schnell helfen - gerne - aber vorher hab ich noch schnell eine Frage:
Was genau suchst du?
Der Pfad ist bekannt und du sucht dort nach einem "muster" wie 1234.xls oder *.xls
Schnell helfen - gerne - aber vorher hab ich noch schnell eine Frage:
Was genau suchst du?
Der Pfad ist bekannt und du sucht dort nach einem "muster" wie 1234.xls oder *.xls
Ich probiers mal
Anstelle von Echo kann du natürlich auch etwas anderes steuern.
Den Teil verstehe ich nicht
Meinst du das Batchfile soll automatisch - oder hast du die schon????
if exist d:\... ...\L01_c04 >nul echo Subversion4
if exist d:\... ...\L01_c03 >nul echo Subversion3
if exist d:\... ...\L01_c02 >nul echo Subversion2
if exist d:\... ...\L01_c01 >nul echo Subversion1
Anstelle von Echo kann du natürlich auch etwas anderes steuern.
Den Teil verstehe ich nicht
Das Batchfile check automatisch in Subversion einen Ordner ein und nennt den Ordner nach einer logischen Reihenfolge.
Meinst du das Batchfile soll automatisch - oder hast du die schon????
Hallo truespin und willkommen im Forum!
Den Ordner mit einem definierten Namensbestandteil und der daran angefügten höchsten Nummer kann ich mir auch ohne Subversion (da Du diesen Befehl ja nicht beschrieben hast) holen, und die Fortsetzung ist dann ja ohnehin gleich:
Kurze Erklärung:
Durch die nach Namen sortierte Ausgabe der "passenden" (= Name beginnt mit dem angegeben Bestandteil %Prefix%) Ordner kann zunächst der letzte Ordnername gefunden werden.
Dessen letzte beiden Zeichen repräsentieren den Zähler. Da dieser (sinnvoller Weise) führende Nullen enthält, setze ich beim Auslesen gleich eine 1 davor und erhalte als (numerische Variable) %Nr% zB 102.
Nach dem Erhöhen des Variablenwertes (wäre dann also 103) können wiederum die letzten beiden Stellen als neuer Zähler entnommen werden. Zusammen mit dem ersten Namensbestandteil ergibt sich der Name des nächsten Ordners.
Grüße
bastla
Den Ordner mit einem definierten Namensbestandteil und der daran angefügten höchsten Nummer kann ich mir auch ohne Subversion (da Du diesen Befehl ja nicht beschrieben hast) holen, und die Fortsetzung ist dann ja ohnehin gleich:
@echo off & setlocal
set "Basis=d:\Dein Pfad"
set "Prefix=L01_c"
for /f "delims=" %%i in ('dir /b /on /ad "%Basis%\%Prefix%*") do set "Letzter=%%i"
set /a Nr=1%Letzter:~-2%
set /a Nr+=1
set "Naechster=%Prefix%%Nr:~-2%
echo Naechster Ordner: %Naechster%
Durch die nach Namen sortierte Ausgabe der "passenden" (= Name beginnt mit dem angegeben Bestandteil %Prefix%) Ordner kann zunächst der letzte Ordnername gefunden werden.
Dessen letzte beiden Zeichen repräsentieren den Zähler. Da dieser (sinnvoller Weise) führende Nullen enthält, setze ich beim Auslesen gleich eine 1 davor und erhalte als (numerische Variable) %Nr% zB 102.
Nach dem Erhöhen des Variablenwertes (wäre dann also 103) können wiederum die letzten beiden Stellen als neuer Zähler entnommen werden. Zusammen mit dem ersten Namensbestandteil ergibt sich der Name des nächsten Ordners.
Grüße
bastla
Hallo truespin!
Vorweg: Neues Thema - neuer Thread (nicht zuletzt, da hier außer uns Dreien kaum jemand mitlesen und zur Lösung beitragen dürfte) ...
Vielleicht stellst Du dann etwas konkreter (Beispieldaten helfen) Dein Vorhaben dar, wobei ich allerdings gleich hier auf einen wesentlichen Unterschied zwischen VB und VBScript hinweisen muss: letzteres hat kein eigenes Programmfenster und bietet daher nur sehr eingeschränkte GUI-Möglichkeiten.
Soferne die Auswahlliste nicht allzu lang wäre, ließe sie sich als eine Art "Menü" (mit nummerierten Optionen und Eingabe der Nummer) durch eine InputBox (notdürftig) umsetzen.
Grüße
bastla
Vorweg: Neues Thema - neuer Thread (nicht zuletzt, da hier außer uns Dreien kaum jemand mitlesen und zur Lösung beitragen dürfte) ...
Vielleicht stellst Du dann etwas konkreter (Beispieldaten helfen) Dein Vorhaben dar, wobei ich allerdings gleich hier auf einen wesentlichen Unterschied zwischen VB und VBScript hinweisen muss: letzteres hat kein eigenes Programmfenster und bietet daher nur sehr eingeschränkte GUI-Möglichkeiten.
Soferne die Auswahlliste nicht allzu lang wäre, ließe sie sich als eine Art "Menü" (mit nummerierten Optionen und Eingabe der Nummer) durch eine InputBox (notdürftig) umsetzen.
Grüße
bastla