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, 4058 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife kaputt? (5)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...