Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateiname per Batchfile verarbeiten (batchfile für suberversion)

Frage Entwicklung Batch & Shell

Mitglied: truespin

truespin (Level 1) - Jetzt verbinden

20.05.2008, aktualisiert 18.10.2012, 5176 Aufrufe, 7 Kommentare

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
Mitglied: 60730
20.05.2008 um 11:20 Uhr
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
Bitte warten ..
Mitglied: truespin
20.05.2008 um 11:27 Uhr
Hallo,

nein der Name ist mir nicht direkt bekannt.
Es gibt aber nur 6 - 7 bestimmte Namen, die sind also "genormt".
Das ganze soll am Schluss so ablaufen:

Das Batchfile check automatisch in Subversion einen Ordner ein und nennt den Ordner nach einer logischen Reihenfolge.
Heißt wenn der Ordner d:\... ...\L01_c01 bereits in subversion verwaltet wird und meine Batch einen eincheckten will muss sie diesen Ordner dann d:\... ...\L01_c02 nennen. Um dies zu bewerkstelligen kann ich mir alle Ordnername auf Kommandozeilenebene von Subversion holen und müsste dann eben den letzten Ordnernamen "lesen" und den entsprechenden Namen für meinen Ordner verwenden.

ich hoffe das ganze war jetzt nicht zu verwirrend....


truespin
Bitte warten ..
Mitglied: 60730
20.05.2008 um 11:52 Uhr
Ich probiers mal

01.
if exist d:\... ...\L01_c04 >nul echo Subversion4 
02.
if exist d:\... ...\L01_c03 >nul echo Subversion3 
03.
if exist d:\... ...\L01_c02 >nul echo Subversion2 
04.
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????
Bitte warten ..
Mitglied: bastla
20.05.2008 um 12:02 Uhr
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:
01.
@echo off & setlocal 
02.
set "Basis=d:\Dein Pfad" 
03.
set "Prefix=L01_c" 
04.
for /f "delims=" %%i in ('dir /b /on /ad "%Basis%\%Prefix%*") do set "Letzter=%%i" 
05.
 
06.
set /a Nr=1%Letzter:~-2% 
07.
set /a Nr+=1 
08.
set "Naechster=%Prefix%%Nr:~-2% 
09.
echo Naechster Ordner: %Naechster%
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
Bitte warten ..
Mitglied: truespin
26.05.2008 um 13:57 Uhr
Hallo zusammen,
dieses Problem hatt sich lösen lassen. Durch ein Subversioncommando konnte ich mir eine Liste erstellen lassen, diese druchsuche ich dann mit "find".
Nun stehe ich aber vor einem neuen Problem.
Man kann in einem Batchfile auch VB-Skripte verwenden, was ich jetzt auch brauche.
Leider weiß ich nicht wie ich eine ListBox wie in VB erstelle und den User eine Auswahl gebe. Ich habe jetzt schon einige Zeit gesucht und das einzige was ich gefunden habe war das hier: http://lab1.de/Central/Software/System-Tools/Winscript/
Leider hilft mir das nicht wirklich weiter.
Ich würde mich wieder über eure Hilfe freuen!


truespin
Bitte warten ..
Mitglied: bastla
26.05.2008 um 14:38 Uhr
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
Bitte warten ..
Mitglied: truespin
26.05.2008, aktualisiert 18.10.2012
Hallo,

auf anraten von bastla habe ich einen neuen Eintrag hizugefügt.

Zu finden hier: http://www.administrator.de/forum/listbox-in-einer-batchdatei-88464.htm ...

truespin
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...