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

batch text auslesen und text ersätzen

Frage Entwicklung Batch & Shell

Mitglied: opixantos

opixantos (Level 1) - Jetzt verbinden

20.12.2005, aktualisiert 23.12.2005, 8915 Aufrufe, 9 Kommentare

leer
! REG.EXE VERSION 3.0
leer
HKEY_CURRENT_USER\Software\game\chicka
  LastGameNameUsed REG_SZ superman
1# wie kann ich mit for den superman auslesen.. der superman könnte aber auch viellänger heissen z.b. supermanduperman

2# wie kann ich in einem txt ein text suchen: test 500 nun soll er die txt öffnen und im wirwar die zeile mit test finden und löschen dabei ersätzt er es durch test "500"
oder test2 "c" "500" er soll den test2 "c" suchen und durch test2 "c" "500" ersätzen..

ich weis das die for frage schon mal diskutiert wurde jedoch verstehe ich die skip token delims eol oder /f /B /R nicht so ganz.. ich weis nicht wie ich forgehen soll..

ich hoffe jemand kann mir helfen und erleutern wie das ganze geht..

thx
Mitglied: Lord-Helmi
21.12.2005 um 12:56 Uhr
Hallo,

vielleicht kannst du deine Fragen nochmal neu formulieren. Momentan habe ich keine Ahnung, was du willst. Evtl. gib uns das ganze "drumherum" auch mit an, das kann durchaus hilfreich sein.

Wenn du Fragen zur for-Schleife hast. kannst du die hier gerne stellen. Wenn du dich in Batch im allgemeinen etwas einarbeiten willst, guck dir doch mal die Tutorials von Biber dazu an. Die sind wirklich gut.

Gruß
Michael
Bitte warten ..
Mitglied: opixantos
21.12.2005 um 19:41 Uhr
hi lord danke für deinen tipp.. ja ich möchte mich in die batch programiereung einarbeiten.. meine frage bezüglich for.. der text oben ist aus einer regi in eine txt ausgegeben das kann ich zumindest jedoch den superman kann ich nicht auslesen..

das mit test2 "c" "500" habe ich per find /v gelöst alle anderen text werden in eine datei eingefügt und und zuletzt füge ich die per echo xy >> text.txt ein das klappt gut..

ich habe wie geschrieben die mühe mit dem for schleifen.. ich verstehe das mit skip token delims und eol nicht so ganz.. wie kann ich den superman auslesen..

ich habe es mal mit find

reg query HKEY_CURRENT_USER\Software\game\chicka /v LastGameNameUsed >temp.txt
find /v "HKEY_" temp.txt > temp2.txt
DEL /s/q/f temp.txt
find /v "!" temp2.txt > temp.txt
DEL /s/q/f temp2.txt

jetzt habe ich in der temp.txt


TEMP2.TXT

TEMP.TXT


xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman

wie kann ich die leerzeichen und diese ---------- TEMP2.TXT löschen damit nur noch

xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman

in der txt steht damit wehere es einfache um es auszulesen und in den %nickname% per set nickname=%%i zu setzen

es hat eben bei xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman
auch leerzeichen und tab ich weis nicht wie ich die auch ausklammern kann..

x leerzeichen
xxxxxtabxxxxx tab

thx
Bitte warten ..
Mitglied: Biber
21.12.2005 um 21:46 Uhr
Moin opixantos,

das meiste hast Du ja schon gelöst, und gar nicht so schlecht...

Bei den TABs begibst Du Dich wieder in den vo M$ ...na, sagen wir mal etwas lieblos dokumentierten Bereich. Ich werde das bei Gelegenheit mal in meinem Batch-Tut IV ("Undokumentierte Bugs, Features und Workarounds im Batch") etwas ausführlicher auswalzen.

Also, wie Du richtig gemerkt hast, kommt bei Reg.exe (und einigen anderen CMD-Befehlen) ein TAB als Trennzeichen zurück.

Im FOR-Befehl kannst Du auch den TAB als "Delimiter" (also Parameter delims=.... angeben. Aber: Nur im Batch, mit einem Editor, nicht an der CMD-Line.

Wenn Deine Zeile so aussieht: "xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman .....(mit TABS und Spaces zwischen den Tokens), dann im Batch:
...
For /F "tokens=3 delims= " %%a ('find "LastGameNameUsed" temp.txt') do set "LastGameNameUsed=%%a"
:: delims ist ein TAB gefolgt von einem LEERZEICHEN
...
-oder- ohne den Zwischenschritt mit der Temp-Datei folgendes in die Klammer vor dem DO:
'reg query HKEY_CURRENT_USER\Software\game\chicka /v LastGameNameUsed ^|find "LastGameNameUsed" '
(Rest wie oben.)

Zum Thema Reg-Key ( mit REG-exe oder RegEdit.exe ) auslesen gibt es auch Tutorials hier in Batch und Shell.
Zum Thema FOR..IN..DO.. hatte ich diese Woche etwas weiter ausgeholt hier: http://www.administrator.de/Hilfe_bei_Batchdatei.html

Den Parameter "eol.." in der FOR-Anweisung vergiss einfach; kommt auch in Batch-Tut IV. Unwichtig jetzt.

HTH Biber
Bitte warten ..
Mitglied: opixantos
22.12.2005 um 23:45 Uhr
hallo bibe ich danke dir..

For /F "tokens=3 delims= " %%a in ('find "LastGameNameUsed" temp.txt') do set "LastGameNameUsed=%%a"
:: delims ist ein TAB gefolgt von einem LEERZEICHEN
...
-oder- ohne den Zwischenschritt mit der Temp-Datei folgendes in die Klammer vor dem DO:
'reg query HKEY_CURRENT_USER\Software\game\chicka /v LastGameNameUsed|find "LastGameNameUsed" '

hab da einige ergenzung da es sonst bei mir nicht läuft

jedoch giebt er wenn ich echo %LastGameNameUsed% > test.txt in die test.txt ECHO ist eingeschaltet (ON).

bei der temp steht jetzt nur noch dank dir

xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman

aber superman wird nicht ausgegeben

thx opi
Bitte warten ..
Mitglied: opixantos
23.12.2005 um 00:06 Uhr
For /F "tokens=3 delims=   " %%a in ('find "REG_SZ" temp.txt') do set "nicki=%%a"

damit ging es dan
mal schauen was als nechstes anstehet

big thx biber & Co.
Bitte warten ..
Mitglied: Biber
23.12.2005 um 00:10 Uhr
Tja, opixantos,

kann aber nichts Gravierendes mehr sein - vielleicht habe ich etwas bei Deinem Beispiel falsch interpretiert und irgendwo einen TAB zuviel....

Also, ich hab Deinen Output, den Du gepostet hast übernommen
xxxxLastGameNameUsedxxxxxtabxxxxxREG_SZxxxxxtabxxxxxsuperman
und so in eine Textdatei temp.dat kopiert (Cut & Paste).
Mit meinem Editor habe ich alle x'e mit Leerzeichen übertippt und alle "tab"s durch TABs ersetzt.
Sieht also so aus:
---inhalt temp.txt
LastGameNameUsed REG_SZ superman
---ende temp.txt

---Mein einzeiliger TestLUName.Bat (wieder mit "delims=TAB+LEERZEICHEN":
$cmd$ type testLUName.bat
For /F "tokens=3 delims= " %%a in (temp.txt) do echo set "LastGameNameUsed=%%a"
Z:\>testLUName
(Output)
$cmd$ For /F "tokens=3 delims= " %a in (temp.txt) do echo set "LastGameNameUsed=%a"
$cmd$ echo set "LastGameNameUsed=superman"
set "LastGameNameUsed=superman"

Works as designed. Beaverproofed.

Also entweder habe ich Deine x'e und "tab"s fehlinterpretiert oder Dir fehlt ein TAB oder ein SPACE beim "delims"- Parameter.
Wenn Du das nicht zum Laufen bekommst, schick mir den Reg.exe-Output als Textdatei und Deinen Batch-Schnipsel.
Bei mir laufen die meisten Bätchelchen nach relativ kurzem Sträuben freiwillig.
Und von diesem Zeitpunkt an auch sogar unter Wasser.

Bis dann
Biber
Bitte warten ..
Mitglied: Biber
23.12.2005 um 00:10 Uhr
Bitte warten ..
Mitglied: Biber
23.12.2005 um 00:22 Uhr
Sorry, war über Kreuz gepostet..

Wenn das Phänomen so ist, wie von Dir gepostet, dann verwende bitte beim FIND-Aufruf den Schalter /i (=ignoriere Klein/Großscheibung)
Dann steht in der Registry "LastgameNameUser" und geprüft wird "LastGameNameUser" (oder so ähnlich) und die sind ungleich. Wenn man/frau es genau nimmt.

Also ändern:
'reg query HKEY_CURRENT_USER\Software\game\chicka /v LastGameNameUsed^|find "LastGameNameUsed" '

in
'reg query HKEY_CURRENT_USER\Software\game\chicka /v LastGameNameUsed^|find /i "LastGameNameUsed" '

Und wichtig ist das "maskierte" Pipezeichen (das "^" vor dem "|"), das fehlt in Deinem Antwortposting !! Grad gemerkt. Das könnte auch der Fehler sein.

Das schaffen wir schon, dass bei Dir "superman" statt "nicki" rauskommt
Bitte warten ..
Mitglied: opixantos
23.12.2005 um 00:23 Uhr
biber big thx das war eben mein fehler dort.. ich wusste nicht was für zeichen bei delims kommt da es leer war ;) aber das ^|find ging irgend wie nicht also hab ich den ^ weg gemacht und jetzt geht alles.. superman wird angezeigt :D
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...