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

Umgekehrte Reihenfolge bei Variablenerstellung (for-Schleife)

Frage Entwicklung Batch & Shell

Mitglied: Pantherstyle

Pantherstyle (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 09:28 Uhr, 4086 Aufrufe, 4 Kommentare

Hallo und einen schönen Vor-Freitag-Morgen!

Ich habe eine for-Schleife und den Wunsch eine bestimmte Datei so in Variablen zerlegen zu lassen, dass diese optimal weiterverarbeitet werden können.

01.
for /f "tokens=1,2 delims=," %%a in (C:\Arbeitskopie\trunk\Daten\SoftwarePaket\Batch-Dateien\data.txt) do ( 
02.
echo ++ %%a %%b 
03.
	for /f "tokens=1* delims=\" %%1 in (%%a) do call :Sub2 "%%1" "%%2" "%%b" 
04.
05.
 
06.
:PROCESS 
07.
 
08.
echo %1 
09.
echo %2 
10.
echo %3 
11.
echo %1\%2\%3 
12.
echo +++++++++++++++++++++++++++++++++++++++++++
Der Code soll später Teil eines anderen Quelltextes werden und ist somit erstmal darauf ausgelegt um zu erkennen, ob die Variablen korrekt zugewiesen wurden. Die Äußere Schleife funktioniert, die innere auch, aber ich hätte gerne die Dateiauswahl umgekehrt. %%a enthält z.B c:\Überordner\Unterordner\Dateiname.dt dieser wird in c: und Überordner\Unterordner\Dateiname.dt zerlegt. Erwünscht wäre aber der umgekehrte Fall: c:\Überordner\Unterordner und Dateiname.dt .

Hier ein Beispiel einer Datei, aus der gelesen würde:

C:\Arbeitskopie\trunk\Daten\SoftwarePaket\Batch Dateien\dateiname1 , 4000
C:\Arbeitskopie\trunk\Daten\SoftwarePaket\dateiname2

Wie man sieht wird in %%a der komplette Pfad und in %%b die Revision gespeichert, wobei diese nicht immer vorliegen muss.


Falls sonstige Syntaktische Probleme enthalten sind würde ich mich auch über eine Verbesserung freuen.
Mitglied: LotPings
14.05.2009 um 10:20 Uhr
Zitat von Pantherstyle:
Moin moin Phanterstyle,

Falls sonstige Syntaktische Probleme enthalten sind würde ich mich auch über eine Verbesserung freuen.

Zuviel der Ehre,
kleine Probleme löst man selbst durch Trial and Error.
Uns als Vor-Debugging-Stufe zu missbrauchen ist schon die Härte.

Gruß
LotPings

PS: Es tut weh, Subs müssen vom normalen Programmfluss getrennt werden!
Da gehört (fasst) immer ein Goto :eof davor.
Bitte warten ..
Mitglied: Pantherstyle
14.05.2009 um 10:36 Uhr
Ich glaube das mit den Syntaktischen Fehlern ist falsch angekommen. Das war mehr auf die Praktische Anwendungsweise bezogen. z.B dass man eben wie gesagt im normalen gebrauch in die Subroutine ein goto :eof hineinsetzt und von dem Programmablauf getrennt werden sollte. So hab ich das gemeint. Sorry wenns falsch ankam.
--> aufgeworfenes gefixxt (dankefön Lord of the Pings)

Falls noch jemand eine konkrete Lösung zum Problem posten möchte wäre ich sehr dankbar.
Bitte warten ..
Mitglied: LotPings
14.05.2009 um 11:25 Uhr
Hallo nochmal,

wenn du einen Call machst, sollte es auch eine Subroutine mit dem Namen geben

Ansonsten hast du hier mal ein Beispiel für einen rekursuven Aufruf.

01.
@Echo off&Setlocal 
02.
Set Datei=C:\Arbeitskopie\trunk\Daten\SoftwarePaket\Batch-Dateien\data.txt 
03.
for /f "tokens=1,2 delims=," %%a in ("%Datei%") do CAll :PROCESS "%%a" 
04.
Goto :Eof 
05.
:PROCESS 
06.
echo %~dp1 -- %~nx1 
07.
set "Pfad=%~dp1"&IF "%Pfad:~4%" NEQ "" CAll :PROCESS "%Pfad:~,-1%"
Gruß

PS: Ich habe den Dateinamen in Anführungszeichen gesetzt, weil ich nicht deine Ordnerstruktur habe.
Bitte warten ..
Mitglied: Pantherstyle
14.05.2009 um 11:39 Uhr
Danke dir Sehr mein Lord of the Pings. Funktioniert jetzt genau wie es soll!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
For Schleife in einer .sh Datei (4)

Frage von CrystalFlake zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Microsoft Office
Outlook 2016 in Ordneransicht starten - GPO (9)

Frage von D-Line zum Thema Microsoft Office ...