Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.msdos.batch.nt    |    Fun with Windows NT batch files    |    68,980 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 67,316 of 68,980    |
|    Herbert Kleebauer to yelw0rc@gmx.net    |
|    Re: Powershell (Ab einer bestimmten Posi    |
|    10 Oct 18 23:18:32    |
   
   From: klee@unibwm.de   
      
   On 10.10.2018 13:06, yelw0rc@gmx.net wrote:   
      
   > ich hoffe, mir kann hier jemand behilflich sein.   
   > Vorweg: Kennt jemand eine Powershell Newsgroup?   
      
   Google kennt doch mit Sicherheit jede Menge von   
   PowerShell Foren.   
      
      
   > Zum Problem:   
   >   
   > Ich habe eine Textdatei, die in etwa wie folgt aufgebaut ist:   
   >   
   > "Gruppe 1":{   
   > "users": [   
   > "Heinz",   
   > "Josef"   
   > ]   
   > }   
   >   
   > "Gruppe 2":{   
   > "users": [   
   > "Mark",   
   > "Bert"   
   > ]   
   > }   
   >   
   >   
   > Es geht nun um die Bearbeitung der User. Da es in der Datei mehrere Gruppen   
   > gibt, war meine Idee erst mal jeweils nach der Gruppe zu suchen.   
   > Wenn ich diese Position gefunden habe (soweit bin ich dann erst mal gekommen)   
   > würde ich ab dieser Position die erste "[" eckige Klammer suchen und dann   
   > die 2. "]" Klammer und alles was dazwischen ist, soll erstmal gelöscht   
   werden,   
   > damit die "users" neu eingefügt werden können.   
      
   Ich habe keine Ahnung von PowerShell aber warum benutzt du nicht   
   die Programmiersprache deiner Wahl (z.B. C) und schreibst ein   
   kleines Programm das das gewünschte macht.   
      
   Nachdem das hier eine batch Gruppe ist, hier ein (extrem langsames)   
   Beispiel wie man mittels eines batch Programms die Datei in.txt   
   einliest, alles zwischen [] entfernt und das Ergebnis in die   
   Datei out.txt schreibt:   
      
      
   @echo off   
   setlocal enabledelayedexpansion   
      
   set infile=in.txt   
   set outfile=out.txt   
   set tmp0=_tmp0.tmp   
      
   if exist %tmp0% del %tmp0%   
      
   call :fopen %infile%   
   echo %infile% opened as input file   
      
   set /a n=0   
      
   :loop1   
   call :getc_hex char %n%   
   set/a n=n+1   
   if %char%==-1 goto :fertig   
   :loop3   
   echo %char%>>%tmp0%   
   if not %char%==5b goto :loop1   
      
   :loop2   
   call :getc_hex char %n%   
   set/a n=n+1   
   if %char%==-1 goto :fertig   
   if not %char%==5d goto :loop2   
   goto :loop3   
      
   :fertig   
   certutil -f -decodehex %tmp0% %outfile% >nul   
   if exist %tmp0% del %tmp0%   
      
   call :fclose   
   goto :eof   
      
      
   :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::   
   :fopen   
   :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::   
   set tmp1=_tmp1.tmp   
   set tmp2=_tmp2.tmp   
   set fsize=%~z1   
   set cache=-1   
   certutil -f -encodehex %1 %tmp1% 4 >nul   
   set n=0   
   if exist %tmp2% del %tmp2%   
      
   for /f "tokens=1-16" %%a in (%tmp1%) do (   
    set /p =%%a%%b%%c%%d%%e%%f%%g%%h%%i%%j%%k%%l%%m%%n%%o%%p
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca