Top-Themen

Aktuelle Themen (A bis Z)

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, 4097 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
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
FOR Schleife mit LOOP und nachfolgender FOR Schleife
gelöst Frage von miczarBatch & Shell6 Kommentare

Hallo zusammen, ich habe ein Problem mit einem Batchfile. Situation: im Netzwerk ist kein WINS mehr vorhanden und so ...

VB for Applications
Per VBA Postfach Outlook durchsuchen in umgekehrter Reihenfolge
Frage von thomas1972VB for Applications3 Kommentare

Hallo, habe folgendes Problem, ich lasse bestimmte Postfächer durchsuchen und eine Access Tabelle eintragen. Problem hierbei das durchsuchen geht ...

Batch & Shell
FOR Schleife läuft nicht
gelöst Frage von sugramBatch & Shell4 Kommentare

Hallo Ich glaube ich sehe den Wald vor lauter Bäumen nicht. Aber ich bekomme die FOR Schleife nicht zum ...

Neue Wissensbeiträge
Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 14 MinutenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...