Jump to content
Sign in to follow this  
svaste

Batch: File auf Inhalt durchsuchen

Recommended Posts

Hallo zusammen

 

 

Ich suche eine Lösung für folgendes Problem:

Ich habe ein registry key exportiert in ein txt File.

 

Das Text file beinhaltet eine versionsnummer "Version REG_SZ 10.1.2.0.6" und ich möchte gerne per batch script, überprüfen ob die versionsnummer = 10.1.2.0.6 ist, wenn ja geht das script weiter.

 

 

Kann mir jemand helfen?

Share this post


Link to post

hallo, ich hab das nur schnell mal in der cmd gemacht, muss nur noch in ne bat oder so umgebaut werden denke ich

 

set test=version reg_sz 10.1.2.0.6

echo %test%      ---> version reg_sz 10.1.2.0.6

echo %test:~15,25%     -----> 10.1.2.0.6

 

und das mit if vergleichen

 

 

Ralph

Share this post


Link to post

Hallo,

mit folgender Anweisung kannst du es machen:

set vergl_key=10.1.2.0.6

for /f "tokens=3" %%i In (datei.txt) do (
  set reg_key=%%i
)

danach einfach nur mit einer IF Anweisung den reg_key mit dem vergl_key vergleichen.

 

MFG

Gregor

Share this post


Link to post

Danke für die rasche Hilfe.

 

ich habe nun den Batch so gebaut.

set vergl_key=10.1.2.0.6

for /f "tokens=3" %%i In (C:\b.txt) do (
set reg_key=%%i
)

pause

if %vergl_key%==%reg_key% goto New

echo "Alt"
pause
goto eof
:New
echo "Neu"


pause

Als Ergebnis kommt folgendes zurück

 

C:\Dokumente und Einstellungen\svaste\Desktop>(set reg_key=0x1 )

 

C:\Dokumente und Einstellungen\svaste\Desktop>pause

Drücken Sie eine beliebige Taste . . .

 

C:\Dokumente und Einstellungen\svaste\Desktop>if 10.1.2.0.6 == 0x1 goto New

 

C:\Dokumente und Einstellungen\svaste\Desktop>echo "Alt"

"Alt"

 

 

0x1 ??? Was stimmt da nicht?

Die Versionsnummer ist 100% so (10.1.2.0.6) im File.

Share this post


Link to post

for /f "tokens=3" %%i In (C:\b.txt) do echo %%i

 

 

Schau mal bitte das Ergebnis an! Ist es das Erwartete?

Share this post


Link to post

Hat auch nicht viel genutzt.

 

 

C:\>set vergl_key=10.1.2.0.6

 

C:\>for /F "tokens=3" %i In (C:\b.txt) do echo %i

 

C:\>echo 10.1.2.0.6

10.1.2.0.6

 

C:\>set reg_key=%i

 

C:\>pause

Drücken Sie eine beliebige Taste . . .

 

C:\>if 10.1.2.0.6 == %i goto New

 

C:\>echo "Alt"

"Alt"

 

C:\>pause

Drücken Sie eine beliebige Taste . . .

Share this post


Link to post

Hi,

 

versuche es mit find.

 

find /I "10.1.2.0.6" C:\b.txt

 

%errorlevel% ist 0 wenn vorhanden und 1 wenn nicht vorhanden.

 

thorgood

Share this post


Link to post

Also, ich habe das nun mal mit 2k getestet und es funktioniert.

 

set vergl_key=10.1.2.0.6

for /f "tokens=3" %%i In (C:\b.txt) do (
set reg_key=%%i
)

if %vergl_key%==%reg_key% goto New

echo "Alt"
pause
goto eof
:New
echo "Neu"
pause

Share this post


Link to post

Die Klammerung ist an dieser Stelle nicht nötig, macht keinen Sinn.

 

for /f "tokens=3" %%i In (C:\b.txt) do set reg_key=%%i

Share this post


Link to post

Falls die Vergelichsoperation nicht zum gewünschten Ergebnis führt, ist zu vermueten, es befindet sich ein nichtsichtbarer Charakter mit im Token, wahrscheinlich ein Space am Ende des Strings.

 

Ich habe die b.txt nun mit dem Editor erstellt, damit ist der Inhalt sozusagen sauber. Wie wurde die b.txt des TO denn erzeugt?

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...