Pilny problem z plikiem wsadowym (WinNT)

Zwiń
X
 
  • Czas
  • Pokaż
Wyczyść wszystko
new posts
  • Encor
    Bywalec
    • 2006
    • 175

    #1

    Pilny problem z plikiem wsadowym (WinNT)

    Wiem, że nie o foto. Mam nadzieję, że mi admini wybaczą (pliiiz), ale potrzebuję pilnie pomysłu, bo mam zaćmienie kompletne.

    Potrzebuję pilnie napisać batcha, który na wszystkich kompach w domenie NT
    4.0 wyszuka i zrzuci do pliku wartość określonego podklucza rejestru.
    Ważne, żeby w pliku wynikowym była nazwa kompa, nazwa podklucza i szukana
    wartość. Ponieważ część kompów tego podklucza nie ma, w pliku wynikowym
    mają się znaleźć tylko wpisy kompów, które go mają.
    Napisałem coś takiego:

    @echo off
    echo Pobieranie nazw stacji w domenie
    for /f "skip=3 tokens=1" %%i in ('net view') do echo %%i >> kompy.txt

    echo Wyszukiwanie stacji z kluczem "HKLM\SOFTWARE\PROKOM Software
    SA\Common\adres_KSI_num_generatora"
    for /f %%i in (kompy.txt) do call :check %%i ksi_num_gen.txt

    :check
    set stacja=%1
    set plik_wynikowy=%2
    title Connecting to %stacja%

    REG query "HKLM\software\prokom software
    sa\common\adres_ksi_num_generatora" %stacja% | find
    "adres_KSI_num_generatora"


    ..... no i utknąłem. Za cholerę nie mogę wygłówkować, jak zrobić, żeby w
    ostatecznym pliku wynikowym wpisać wynik polecenia REG QUERY i jednocześnie
    W TYM SAMYM WIERSZU nazwę stacji.
    Reg query samo w sobie wywala nazwę stacji do której się podłącza (ale w osobnym wierszu), więc
    można albo korzystać z tego, albo bezpośrednio ze zmiennej %stacja% - tak
    przynajmniej kombinuję. Sęk w tym, że nie mogę wykombinować... a problem
    jest pewnie banalny (mam zaćmienie chyba)
  • Tomasz Golinski
    Pełne uzależnienie
    • 2004
    • 8623

    #2
    Pierwszy pomysł: rób wpisy w stylu
    KOMP1
    klucz
    //
    KOMP2
    klucz
    //

    itd. a potem potraktuj to jakimś windowsowym gawkiem i doprowadz do zalecanej postaci.
    30D | 85/1.8 | 135/2 | 70-200/4 | T17-50/2.8 | 100-300/4.5-5.6 | 50/1.4 | 650 | 430EX | Sherpa 600r
    Zdjęcia - Iran, folk, jazz, wątek galeriowy



    Komentarz

    • mor_feusz
      Pełne uzależnienie
      • 2006
      • 1370

      #3
      Zrob login script. niech kazdy komp wykona skrypt, i wynik niech wykona sie gdzies na \\jakis_server\jakis_share niech kazdy komp jako wynikowy plik zamiast kompy.txt zrobi plik wynikowy ze zeminna %hostname%, czyli jak masz 20 kompow to niehc kazdy wrzuci do %hostname%.txt (musisz ja zdeklarowac w skrypcie - innaczej klapa. Masz wtedy w katalogu na serverez tyle plikow ile masz stacji z nazwami np. KOMP1.txt, KOMP2.txt i w nich twoje spiste - potem 1 linia z wierasza polecen i zcalaszpliki do 1 i masz to co chciales.

      To export all registry to file c:\all.reg, use the /e switch as follows:
      regedit /E c:\all.reg
      To export a specific registry key to file file.reg, use the /e switch as follows:
      regedit /E file.reg <registry_key>, for example
      regedit /E c:\hklm_run.reg "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Cur rentVersion\Run" will export list of Startup programs from Run section.
      Merge or import file.reg to Registry:
      regedit file.reg
      Create and replace an existing registry from a file file.reg:
      regedit /C file.reg
      For silent execution of Regedit command, use the /s parameter. If /S specified, Regedit will be operate quietly, without asking for confirmation.
      To delete specific registry key from the registry:
      Win 95,98,ME Regedit has switch /d, use it as follows:
      regedit /D <registry_key>, for example
      regedit /D "HKEY_CLASSES_ROOT\CLSID\{834261E1-DD97-4177-853B-C907E5D5BD6E}" will delete entry of Trojan CWS


      Win 2000, XP You can create .reg file and specify in it minus sign before the key name to delete (example - contents of sample file c:\del.reg):

      REGEDIT4
      [-HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\System]

      Now if Regedit will be launched by command regedit c:\del.reg, the key HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\System will be removed from the system registry.
      Win 95,98,ME There are several command line switches for specifying location of User.dat (/L) and user name (/R):
      regedit /L:c:\windows\user.dat /e c:\test.reg
      Ostatnio edytowany przez mor_feusz; 5033.

      Komentarz

      Pracuję...