Advertisement
Guest User

Batch Array_demo

a guest
Jul 5th, 2017
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 2.56 KB | None | 0 0
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. rem setze Fenstereigenschaften   ---ich mag einen riesigen Zeilenbuffer
  4. call :set_ConsoleWindow 128 80 999 32000 Array_Demo
  5.  
  6.  
  7. :var
  8. set "search=c:/*.txt"
  9. set /a "file.arr.base=1"
  10. set /a "file.arr.count=%file.arr.base%"
  11.  
  12.  
  13. :main
  14. echo suche und zaehle Dateien
  15. for /f "delims=" %%a in ('dir /b /s "%search%" 2^>nul') do (
  16.     set file.arr[!file.arr.count!]=%%a
  17.     set /a "file.arr.count+=1"
  18.     )
  19.  
  20. echo %file.arr.count% Dateien gefunden.
  21. mshta "javascript: close((Test=(Voice=new ActiveXObject('SAPI.SpVoice')).GetVoices()).count&&Voice.Speak('Hallo! %file.arr.count%  Files counted'))"
  22. echo speichere  file.arr  in der der Datei file.arr.txt
  23. rem ein array in eine datei speichernn ist simpler als in C++
  24. set file.arr > file.arr.txt
  25. echo da  isses...
  26. start "" "file.arr.txt"
  27. pause
  28. rem array löschen
  29.  
  30. echo Loesche array...
  31. mshta "javascript: close((Test=(Voice=new ActiveXObject('SAPI.SpVoice')).GetVoices()).count&&Voice.Speak('delete %file.arr.count%  Arraycells'))"
  32. for /f "delims==" %%a in ('set file.arr 2^>nul') do (set "%%a=" )
  33. set file.arr
  34. echo alles weg?
  35.  
  36. pause
  37. :read
  38. rem array aus Datei einlesen
  39. echo lese Array aus Datei...
  40. for /f  "usebackq delims=" %%a in ("file.arr.txt") do ( set "%%a")
  41. set file.arr
  42. echo jetz sollte alles wieder da sein...
  43.  
  44. pause
  45. rem array durchsuchen  und in neuem array speichern
  46.  
  47.  
  48.  
  49. set "searchText=%username%"
  50. echo durchsuche file.arr  nach suchbegriff: %searchText%
  51.  
  52.  
  53. set /a "user.files.count=1"
  54. for /f "tokens=1-2* delims==" %%a in ('set file.arr[') do (
  55.  rem  mit "find"  kann man  keine  strings mit Leerzeichen suchen,  der replacemethothe ist es  egal
  56.  rem  im dummy einfach  den suchText löschen und dummy  mit dem original vergleichen
  57.   set "original=%%b"
  58.   set "dummy=!original:%searchText%=!"
  59.   if /i not .!dummy!==.!original! (
  60.    rem es muss  nicht immer eine  eckige Klammer sein dem  batcharray ist es egal...
  61.     set "user.arr_!user.files.count!=!original!"
  62.     set /a "user.files.count+=1"  
  63.     echo  kopiere  Inhalt !original!
  64.     echo ...nach  user.arr_!user.files.count! &  echo.
  65.   )
  66. )
  67. pause
  68. echo %user.files.count% Arrayelemente  in das Array "user.arr_" kopiert...
  69. pause
  70. set user.arr_
  71.  
  72.   rem for /f "delims=" %%X in('echo %%b ^|find /i "%searchText%"') do (    echo %%X    )
  73.  
  74.  
  75. pause
  76. :end_main
  77. exit/b
  78.  
  79. :sub_routines
  80.  
  81. :set_ConsoleWindow
  82. mode con: cols=%1 lines=%2
  83. powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=%3;$B.height=%4;$W.buffersize=$B;$W.WindowTitle='%5'}" >nul 2>&1 || echo fehler
  84. exit /b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement