knumskull
Goto Top

Problem mit FOR-Schleife für Verzeichnisabarbeitung

Problem mit der For-Schleife. Gestern hat es nocht funktioniert.

Ich möchte alle Reg-Files in einem Verzeichnis parsen. Nur irgendwie geht der nicht in meine FOR-Schleife rein. Also die Zeile 'for /R \\remotecomputer\reg\win32 %%A in (*.reg) do (' funktioniert wohl schon irgendwie nicht face-sad

Hat jemand eine Idee?

for /R \\remotecomputer\reg\win32 %%A in (*.reg) do (
  echo %%A
  type "%%A" > %LOC_TEMPFILE%  
  set _result=0
  rem # Reg-files durchparsen und nach REG-Eintraegen suchen und diese vergleichen
  for /F "skip=1 delims=" %%J in (%LOC_TEMPFILE%) do (    
    rem # Anhand des Zeichens '[' wird der Reg-Schluessel erkannt  
	echo in for-loop
	echo %%J | find "[" >%LOC_TEMPFILE_2%  
	set /p VAR=<"%LOC_TEMPFILE_2%"  
	reg query "\\%WORKSTATION%\!VAR:~1,-2!" >NUL 2>&1  
	if errorlevel 1 set _result=1
  )
  if "!_result!"=="1" (  
    rem # Subroutine fuer Registry-File-import wird aufgerufen
    echo call :INCLUDE_REG %%A
	call :INCLUDE_REG %%A
  )
)

Content-Key: 113882

Url: https://administrator.de/contentid/113882

Ausgedruckt am: 29.03.2024 um 05:03 Uhr

Mitglied: 60730
60730 15.04.2009 um 10:23:09 Uhr
Goto Top
Servus,

Mit Batch kannst du nur Befehle ausführen - die es auch gibt.

Daher müßte - damit "das" stimmt - auch eine Freigabe Reg auf Remotecomputer existieren.
\\remotecomputer\reg\win32


Entweder mappst du vorher - jedes c$ - jedes Rechners - oder du nimmst PSexec und führst das dann "so"lokal (von deinem Rechner gesteuert) aus.

"wenn" es per Schleife laufen soll, dann ungefähr und ungetestet so:

for /f %%i in (dir /A-D /s *.reg) do regedit /s %%i

Aber wie geschrieben - mach es per Pssexec.

Gruß
Mitglied: Knumskull
Knumskull 15.04.2009 um 10:41:46 Uhr
Goto Top
die erste Zeile in meiner For-Schleife war eher exemplarisch

genau lautet diese

for /R %CAE_PAKET_REG_HOME%\!ARCH! %%A in (*.reg) do 

die Var: CAE_PAKET_REG_HOME ist eine Freigabe im Netz, in der verschiedene REG-Files liegen. Diese sind noch nach Architektur (32/64bit) unterteilt.

Die Var !ARCH! wird pro Rechner ermittelt und resultiert in win32 oder win64

und ich vermute auch, das in dieser VAR das Problem liegt. Warum auch immer. Ich habe gerade die VAR mal durch "win32" ersetzt und da hat es funktioniert.
Mitglied: Knumskull
Knumskull 15.04.2009 um 10:52:20 Uhr
Goto Top
ich habe das !ARCH! durch %ARCH% ersetzt.

Ich dachte ich muss das hier auch so machen, allerdings rufe ich diese FOR-Schleife in einer extra Datei auf und das ARCH wird in der Datei zuvor gesetzt.

Demnach ist wohl %ARCH% bekannt.

Jetzt funktioniert es.