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 Verwendung von Teilstrings in mit findstr ausgelesenen Zeilen

Mitglied: TottiPdm

TottiPdm (Level 1) - Jetzt verbinden

29.01.2008, aktualisiert 14:55 Uhr, 3747 Aufrufe, 2 Kommentare

Hallo zusammen,

ich habe ein Textdatei, welche in den Zeilen alphanumerische Zeichenketten hat, z.B. AB000012.
Für mich wichtig sind die letzten beiden Zeichen. Diese sollen mit Bedingungen abgeglichen werden
um dann anschließend einen call-Befehl für ein externes Programm abzusetzen.
Das externe Programm erwartet einen Parameter, z.B. /PARAMETER=GRUPPE1

der Paramter sollte folgende Ausprägungen in Bezug auf die letzten beiden Zeichen jeder Zeile der Textdatei haben:
von 01 bis 15 ==> /PARAMETER=GRUPPE1
von 16 bis 35 ==> /PARAMETER=GRUPPE2
von 35 bis 85 ==> /PARAMETER=GRUPPE3
von 86 bis 99 ==> /PARAMETER=GRUPPE4

Ich habe nun schon folgendes versucht, bekomme aber nicht das gewünschte Ergebnis (erstmal ob die Variablen richtig befüllt werden):

01.
SETLOCAL EnableDelayedExpansion 
02.
@FOR /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%~1"') do ( 
03.
set x=%%j 
04.
set y=%x:~-2%  
05.
echo %y% >> c:\test.txt )
Meine Test-Textdatei hat folgenden inhalt:
01.
AB000012 
02.
AB000025 
03.
AB000036 
04.
AB000086
was mir jedoch angezeigt wird in der Eingabeaufforderung ist folgendes:
01.
C:\>( 
02.
set x=AB000012 
03.
 set y=~-2 
04.
 echo    1>>c:\test.txt 
05.
06.
 
07.
C:\>( 
08.
set x=AB000025 
09.
 set y=~-2 
10.
 echo    1>>c:\test.txt 
11.
12.
 
13.
C:\>( 
14.
set x=AB000036 
15.
 set y=~-2 
16.
 echo    1>>c:\test.txt 
17.
18.
 
19.
C:\>( 
20.
set x=AB000086 
21.
 set y=~-2 
22.
 echo    1>>c:\test.txt 
23.
)
was mache ich falsch?

Vielen Dank
Torsten
Mitglied: Biber
29.01.2008 um 13:25 Uhr
Moin TottiPDm,

willkommen im Forum.

Wenn du mit verzögerter Variablenauflösung arbeitest (DelayedExpansion), musst Du auch diejenigen Variablen, die tatsächlich "verzögert" aufgelöst werden sollen, so einschließen: !var! statt so %var%.
Das "Enablen" ist ja nur das grundssätzliche Ermöglichen diesen Features, nicht die konkrete oder gar auf alle Variablen bezogene Anweisung.
01.
@echo off & SETLOCAL EnableDelayedExpansion 
02.
Set out=con: 
03.
REM [Bei Bedarf wieder aktiveren] Set Out=c:\test.txt 
04.
FOR /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%~1"') do ( 
05.
set x=%%j 
06.
set y=!x:~-2!  
07.
echo !y! >> %out% )
Grüße
Biber
Bitte warten ..
Mitglied: TottiPdm
29.01.2008 um 14:55 Uhr
Hallo Biber,

super. vielen Dank für den Hinweis mit den Varibalen.

Jetzt habe ich mein Batch zum laufen bekommen.

Hier mla die Lösung für alle anderen:

01.
@ECHO OFF & SETLOCAL EnableDelayedExpansion 
02.
@DEL test.txt 
03.
@FOR /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%~1"') do ( 
04.
	set x=%%j 
05.
	set y=!x:~-2! 
06.
	If !y! GTR 90 ( 
07.
		echo Bei !y! erfolgt kein Aufruf  >> c:\test.txt  
08.
		) else (		 
09.
			If !y! LSS 15 ( 
10.
				set param=GROUP1 
11.
				echo !y!, !param! >> c:\test.txt  
12.
				) else ( 
13.
					If !y! LSS 35 ( 
14.
						set param=GROUP2 
15.
						echo !y!, !param! >> c:\test.txt  
16.
						) else ( 
17.
							If !y! LSS 85 ( 
18.
								set param=GROUP3 
19.
								echo !y!, !param! >> c:\test.txt  
20.
							) else ( 
21.
								set param=GROUP4 
22.
								echo !y!, !param! >> c:\test.txt  
23.
							)  
24.
25.
26.
			echo Der Aufruf waere: call datei.exe  !param! >> c:\test.txt 
27.
28.
	)	 
29.
SETLOCAL DisableDelayedExpansion
Jetzt muss ich nur noch die Test-echos entfernen und den letzten echo-Befehl durch den call ersetzen und dann läufts.

Danke

Lieben Gruß

Torsten
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Übergabe einer Zeile die vor der per findstr gefundenen Zeile liegt

gelöst Frage von 2nd.level.noobieBatch & Shell9 Kommentare

Aaaalso erstmal ein freundliches Hallo und wie gehts. Ich nutze euer Forum seit ein paar Tagen für Recherchen bezüglich ...

Batch & Shell

Ausgelesene Zeile als echo verfügbar, bekomme sie aber nicht in eine Variable

gelöst Frage von AmVerzweifelnBatch & Shell17 Kommentare

Hallo erstmal an alle die das lesen, ich bin im Batch schreiben blutiger Anfänger. Ich möchte aus einer sehr ...

VB for Applications

VBA auch "Teilstrings" finden

gelöst Frage von 94451VB for Applications1 Kommentar

Hallo ich habe ein kleines VBA mit dem ich Strings in einer großen Tabelle suche und mir dann die ...

Windows Tools

Findstr und regex

gelöst Frage von tobmesWindows Tools5 Kommentare

Hi Experten, ich habe ziemlich viele PDF-Dateien, die ich mittels eines Batch-Files nach einem Bestimmten Muster durchsuchen möchte. Die ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement17 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...