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

Frage Entwicklung Batch & Shell

GELÖST

Fehler bei For schleife, prozentprozent i kann syntaktisch nicht verwendet werden

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 3) - Jetzt verbinden

10.04.2012, aktualisiert 16:03 Uhr, 4471 Aufrufe, 7 Kommentare

Hi@All,

Ziel:

- Textdatei suchen
- wenn gefunden Zeichenkette suchen
- wenn gefunden Alles was dahinter in der Zeile Steht mit vorgegebenen Wert vergleichen
- wenn Wert korrekt, dann nach nächster Zeichenkette suchen
- alles rauskopieren was dort hinter dem "=" steht und in eine Variable abspeichern


1. Schritt:

01.
'findstr "AppName" "c:\test\verzeichnis1\test.ini" -> liefert mir die Zeile
Da ich aber alle Unterverzeichnisse durchlaufen muss pack ich das in eine Schleife:

01.
for /f "delims=," %%i in ('findstr "AppName" "test.ini"') do @set ln=%%i 
02.
echo %ln%
Hier sagt er mir ständig ich kann kann %%i syntaktisch nicht verwenden.

%%i ist doch nur die Variable in die das Ergenis geschrieben wird und 2*% ist doch korrekt oder?

VG
Mitglied: bastla
10.04.2012 um 16:30 Uhr
Hallo H41mSh1C0R!
Hier sagt er mir ständig ich kann kann %%i syntaktisch nicht verwenden.
Du führst die Zeile doch als Bestandteil eines Batches aus? Falls nicht (also bei Direkteingabe in die CMD-Shell) ist nur ein Prozentzeichen zu verwenden ...
Wenn Du übrigens Unterverzeichnisse durchlaufen und in allen gefundenen Dateien namens "test.ini" nach "AppName" suchen willst, müsste das eher so aussehen:
for /f "delims=" %%i in ('dir /s/b "c:\test\verzeichnis\test.ini"') do for /f "delims=," %%a in ('findstr "AppName" "%%i"') do echo %%a
wobei in diesem Fall jener Teil der gefundenen Zeilen, der vor dem ersten Komma steht, als %%a (innerhalb der Schleife) zur Verfügung stünde ...

Besser nachvollziehbar wird Dein Vorhaben mit Beispieldaten ...

Grüße
bastla
Bitte warten ..
Mitglied: H41mSh1C0R
10.04.2012 um 16:51 Uhr
Hi Bastla,

als Beispiel:

Ich habe mehrere Programme und die werden auf mehreren Rechnern installiert. Leider erzeugt jede Installation in einem bestimmten Verzeichnis einen Unterordner mit einer PC spezifischen Zeichenkette. Der Inhalt in diesem Ordner ist immer gleich strukturiert, allerdings NICHT der Ordnername.

Damit die cmd auf jeden PC genutzt werden kann muss ich halt so die ini "finden" und mir die gewünschten Werte holen.

01.
 for /f "delims=" %%i in ('dir /s/b %DIR%') do for /f "delims=," %%a in ('findstr "AppName" "%%i"') do echo %%a 
Wenn ich das so in die CMD packe bekomme ich solange 100% CPU Last und bergeweise cmd Instanzen. =(

In der ersten for Schleife muss doch nur der Startpfad rein also indem Fall der Ordner indem die Unterordner mit den PC spezifischen Zeichenketten drinnen stehen.

Gruß
Bitte warten ..
Mitglied: bastla
10.04.2012 um 17:00 Uhr
Hallo H41mSh1C0R!

Du meinst mit
Wenn ich das so in die CMD packe
eine cmd-Datei, nehme ich an - dann müsste es aber doch auch vorher schon Code-Zeilen geben (oder existiert in Deiner Umgebung auf jedem Rechner bereits eine Variable %DIR%?) - poste die doch bitte auch ...
In der ersten for Schleife muss doch nur der Startpfad rein also indem Fall der Ordner indem die Unterordner mit den PC spezifischen Zeichenketten drinnen stehen.
Was in die erste Schleife rein sollte, kannst Du ja meinem Vorschlag entnehmen (und sag nicht, auch die ini-Dateien hätten noch unterschiedliche Namen) ...
Abgesehen davon könnte ich mir als einzigen Grund für "bergeweise cmd Instanzen" nur vorstellen, dass Du die Batchdatei ausgerechnet "findstr.cmd" genannt hättest ...

Grüße
bastla
Bitte warten ..
Mitglied: H41mSh1C0R
10.04.2012 um 17:05 Uhr
01.
@echo off & setlocal  
02.
 
03.
SET DIR="C:\Users\Nutzer\Desktop\Appz\010_installShieldProdukt\" 
04.
SET FILE=setup.ini 
05.
SET AppName="Name" 
06.
SET GUID="test" 
07.
 
08.
for /f "delims=" %%i in ('dir /s/b %DIR%%FILE%') do for /f "delims=," %%a in ('findstr "AppName" "%%i"') do echo %%a

----
Abgesehen davon könnte ich mir als einzigen Grund für "bergeweise cmd Instanzen" nur
vorstellen, dass Du die Batchdatei ausgerechnet "findstr.cmd" genannt hättest ...


*hust, schande über mein Haupt*

ich hab die cmd wirklich so benannt LÖL

PS:

Funktioniert danke. =) Muss das nun grad noch beiseite packen, hab noch was anderes auf den Tisch bekommen. Ich mach dann hier morgen weiter. =)
Bitte warten ..
Mitglied: bastla
10.04.2012 um 17:09 Uhr
Hallo H41mSh1C0R!

Ich würde das eher so schreiben:
01.
@echo on & setlocal  
02.
 
03.
SET "DIR=C:\Users\Nutzer\Desktop\Appz\010_installShieldProdukt" 
04.
SET "FILE=setup.ini" 
05.
SET "AppName=Name" 
06.
SET "GUID=test" 
07.
 
08.
for /f "delims=" %%i in ('dir /s/b "%DIR%\%FILE%"') do for /f "delims=," %%a in ('findstr "%AppName%" "%%i"') do echo %%a
und dem "findstr" ev noch ein "/i" spendieren ...

Grüße
bastla
Bitte warten ..
Mitglied: H41mSh1C0R
10.04.2012 um 17:13 Uhr
Die SET Einträge zwingend in ""?

Danke für deine schnelle Hilfe.

vg
Bitte warten ..
Mitglied: bastla
10.04.2012 um 17:17 Uhr
Hallo H41mSh1C0R!
Die SET Einträge zwingend in ""?
Zwingend: nein
Empfehlenswert: grundsätzlich sehr

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Syntaktischer Fehler in For-Schleife
gelöst Frage von CopyPasteBatch & Shell14 Kommentare

Hallo, ich hoffe, ihr könnt mir hier auf die Sprünge helfen. Ich schreibe relativ viele Batchscripte um mir die ...

Batch & Shell
Fehler in Schleife
gelöst Frage von miczarBatch & Shell2 Kommentare

Hallo zusammen, nachdem ich das letzte Problem weitestgehend selber lösen konnte, stehe ich nun vor einem neuen. Dieser Code ...

Batch & Shell
Syntaktischer Fehler im Batch File das die Farben von CMD ändern soll
gelöst Frage von MaxappemannBatch & Shell2 Kommentare

Hallo liebe Community wir haben hier ein kleines Problem. Wir versuchen mit einem Batch File statt color 0A schreiben ...

Batch & Shell
"goto" kann syntaktisch an dieser Stelle nicht verarbeitet werden
gelöst Frage von Y4nn1ckBatch & Shell14 Kommentare

Morgen, ich schreibe gerade an einem Zufallsgenerator für die Klasse, also an einem, der auswählt, wer dran kommt. Ich ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 18 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...