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

Text Zeilenweise auslesen und variable überprüfen

Frage Entwicklung Batch & Shell

Mitglied: Bruendl

Bruendl (Level 1) - Jetzt verbinden

15.01.2015, aktualisiert 15:03 Uhr, 848 Aufrufe, 11 Kommentare

Moin Moin,

ich habe eine Textdatei mit folgendem Inhalt:

 
"C:\[Pfad]" DOMÄNE\user:(I)(RX,W) 
..... 
..... 
usw.
ich möchte jetzt gerne die beiden Werte, die von einem Leerzeichen getrennt sind mit einer FOR-Schleife einlesen und dann mit IF eine der Variablen überprüfen, ob "(RX,W)" enthalten ist. Sollte die Überprüfung positiv sein soll ein weiterer Befehl ausgeführt werden.

Ich habe folgendes versucht:

01.
FOR /F "tokens=1,2" %%i in (out.txt) DO IF "%%j"=="*(RX,W)" && echo gefunden > habs.txt
Dies erst einmal nur zum testen. Hier scheint er über das && nicht hinauszukommen.

Das gleich habe ich auch schon mit FIND und FINDSTR versucht. Hier scheint er aber die Variable %%j nicht interpretieren zu können. Er möchte hier immer irgendwie ein Textdokument haben.

Würde mich freuen ein paar Anregungen zu bekommen und Danke im Voraus.


Bruendl
Mitglied: 114757
15.01.2015, aktualisiert um 15:07 Uhr
01.
findstr /ie "(RX,W)" "C:\out.txt" && echo Gefunden || echo Nicht gefunden
Gruß jodel32
Bitte warten ..
Mitglied: Bruendl
15.01.2015 um 15:19 Uhr
Danke jodel32 für deine schnelle Antwort.

Ich glaube ich habe zu wenig erzählt. Die Textdatei Out.txt enthält mehrere Pfade und mehrere Rechte, die jeweils von einem Leerzeichen getrennt sind. Ich möchte erreichen, dass die Variable %%j überprüft wird ob (RX,W) enthalten ist. Wenn dies der Fall ist soll ein anderes Recht auf diesen Pfad gesetzt werden. Weswegen ich ja die Variable %%i dann benötige.

Vielleicht irgendwelche Ideen dazu?
Bitte warten ..
Mitglied: 114757
15.01.2015, aktualisiert um 17:23 Uhr
und was machst du wenn dein Pfad Leerzeichen enthält :-P

ansonsten musst du die Anführungszeichen als Delimiter benutzen ...
Bitte warten ..
Mitglied: Bruendl
15.01.2015 um 15:47 Uhr
Danke ich teste das gleich mal aus. Bzgl. der Leerzeichen in meinem Textdokument sind alle Pfade in "".
Bitte warten ..
Mitglied: 114757
15.01.2015, aktualisiert um 17:23 Uhr
Zitat von Bruendl:

Danke ich teste das gleich mal aus. Bzgl. der Leerzeichen in meinem Textdokument sind alle Pfade in "".
Das bringt hier aber nix
Mit den Anführungszeichen als Trenner etwa so
01.
for /f tokens^=1^,2^ delims^=^" %%i in (out.txt) DO @( 
02.
    echo %%j| findstr /ie "(RX,W)" >nul && echo %%i 
03.
)
Bitte warten ..
Mitglied: Bruendl
15.01.2015, aktualisiert um 15:54 Uhr
Achso ...

Ich dachte, dass wenn ich keinen Delimter setze diese standardmäßig ein Leerzeichen ist. Und wenn ich jetzt bspw. "C:\test test\test.txt" habe, dann wird das nicht so in %%i gespeichert?
Bitte warten ..
Mitglied: 114757
15.01.2015, aktualisiert um 16:03 Uhr
Zitat von Bruendl:

Achso ...

Ich dachte, dass wenn ich keinen Delimter setze diese standardmäßig ein Leerzeichen ist. Und wenn ich jetzt bspw.
"C:\test test\test.txt" habe, dann wird das nicht so in %%i gespeichert?

Nope ...
In deinem Beispiel wären dann in %%i
"C:\test
Und in %%j
test\test.txt"

Siehe Lösung oben mit Anführungszeichen als Trenner
Bitte warten ..
Mitglied: Bruendl
15.01.2015 um 16:24 Uhr
Das ist ja doch alles gar nicht so einfach .

Ich habe das jetzt genau so übernommen wie von die gepostet und die Batch bleibt nicht an meiner Pause nach der Schleife hängen. Bei den Tokens steht jetzt 2,3 anstatt von 1,2. Hängt das mit den "" zusammen?
Bitte warten ..
Mitglied: 114757
15.01.2015, aktualisiert um 18:16 Uhr
sorry da waren noch ein paar Fehler drin denn das Anführungszeichen ist als speziell zu betrachten:
01.
for /f tokens^=1^,2^ delims^=^" %%i in (out.txt) DO @( 
02.
    echo %%j| findstr /ie "(RX,W)" >nul && echo %%i 
03.
)
Bitte warten ..
Mitglied: Bruendl
15.01.2015 um 17:30 Uhr
Cool danke werde ich gleich einmal testen
Bitte warten ..
Mitglied: Bruendl
19.01.2015 um 22:01 Uhr
So konnte es soweit testen und es funktioniert sehr gut. Ich möchte jetzt gerne nach dem && zwei befehle ausführen:

01.
icacls %%i /deny %%j:(NP)(D,WDAC,WO,WEA,DC,WA) 
02.
icacls%%i /grant %%j:(NP)(RX,WD,AD)
Einerseits bekomme ich es nicht hin nur den einen Befehl auszuführen. Da bricht die Batch dann immer ab, geschweige denn beide hintereinander. Die Variable %%j soll jetzt auch nur den Benutzer wiederspiegeln und nicht die Berechtigungen. Kann man diese wegkürzen? Oder besteht die Möglichkeit, dass meine Out.txt folgendermaßen aussieht:
01.
"C:\[Pfad]" "DOMÄNE\user" ":(I)(RX,W)" 
02.
.....  
03.
.....  
04.
usw.
Bei der Sortierung der Out.txt. Kann ich recht varibel sein.

MFG

Bründl
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
(BATCH:) Zeilenweise Txt auslesen und in eine Variable speichern
gelöst Frage von NincedBatch & Shell20 Kommentare

Hallo Leute, Ich weiß, es ist ein alter Hut, aber ich habe da ein paar Fragen bezüglich der for-Schleife ...

Batch & Shell
Textdatei zeilenweise in Variable schreiben
gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Batch & Shell
Batch: Textdatei Zeilenweise auslesen
gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell
Datei zeilenweise auslesen - es passiert aber nichts
gelöst Frage von NagusBatch & Shell3 Kommentare

Hi zusammen, ich stehe gerade auf dem Schlauch. Ich will mit einem einfachen Script aus einer text-Datei Dateinamen auslesen ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 5 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 12 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 23 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...