twiceface
Goto Top

Batch Datei: ECHO ist ausgeschaltet (OFF)

Guten Abend,

ich habe mir aus diversen Beiträgen hier ein nützliches Script "zusammengeklaut".
Es funktioniert wunderbar, nur bekomme ich immer bei der Ausgabe in die .txt Datei in den Leerzeilen: ECHO ist ausgeschaltet (OFF).
Mir ist durchaus bewusst das in dem Script ein bisschen was nicht passt, jedoch fehlt mir die Nachvollziehbarkeit.
Was ich wollte:
- öffne die Datei
- suche nach dem festgesetzten Wert
- Aufforderung den neuen Wert einzugeben
- ersetze den alten Wert
- speichere die Datei am ursprünglichen Ort ab

Hier der Code:
@echo off & setlocal enabledelayedexpansion

set "Datei=C:\Users\testuser\Desktop\test_config.txt"   
set "t=Temp.tmp"   

set "Suchen1=192.168.2.2/24"  
set /p "Ersetzen1=IP_der_Routerschnittstelle_eingeben(192.168.0.2/24):"  
set "Suchen2=192.168.2.0/24"  
set /p "Ersetzen2=NetzwerkID_+_Maske_der_LAN_1(192.168.0.1/24):"  
set "Suchen3=192.168.2.255"  
set /p "Ersetzen3=Broadcastadresse_der_LAN_1:"  
set "Suchen4=192.168.2.1"  
set /p "Ersetzen4=IP_Adresse_der_LAN_1:"  
set "Suchen5=192.168.2.0"  
set /p "Ersetzen5=Netzadresse_der_LAN_1:"  

if exist "%t%" del "%t%"  
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine  
move "%t%" "%Datei%"  
goto :WEITER_IM_BATCH

:ProcessLine
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"  
if not defined L >>"%t%" echo\& goto :eof  
set WriteLine1=!L:%Suchen1%=%Ersetzen1%!
set WriteLine2=!WriteLine1:%Suchen2%=%Ersetzen2%!
set WriteLine3=!WriteLine2:%Suchen3%=%Ersetzen3%!
set WriteLine4=!WriteLine3:%Suchen4%=%Ersetzen4%!
set WriteLine5=!WriteLine4:%Suchen5%=%Ersetzen5%!
>>"%t%" echo !WriteLine5!  

goto :eof

Was ist zuviel? oder wo fehlt die echo Anweisung?

Vielen Dank für die Hilfe.

Content-Key: 331712

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

Printed on: April 18, 2024 at 04:04 o'clock

Member: StefanKittel
StefanKittel Mar 09, 2017 at 16:35:50 (UTC)
Goto Top
Hallo,

ich sehe es so auch nicht, aber die Meldung kommt wenn man nur "echo" als Befehl verwendet.
Für Leerzeilen auf dem Bildschirm braucht es dann "echo." (Punkt am Ende).

Vermutlich ist hier also eine echo Zeile mit leerem Parameter.

Grenze das ganze doch mit ein paar Pausen ein, damit Du weiß wo.

Stefan
Mitglied: 132658
Solution 132658 Mar 09, 2017 updated at 16:45:46 (UTC)
Goto Top
Hi,
schreibe Zeile 30 in dieser Art
>>"%t%" echo.!WriteLine5!   
es geht statt mit dem Punkt auch mit einem "(" "[" "/" usw.
>>"%t%" echo(!WriteLine5!   

Gruß schnappi
Member: twiceface
twiceface Mar 09, 2017 at 20:59:54 (UTC)
Goto Top
Zitat von @132658:

Hi,
schreibe Zeile 30 in dieser Art
>>>"%t%" echo.!WriteLine5!   
> 
es geht statt mit dem Punkt auch mit einem "(" "[" "/" usw.
>>>"%t%" echo(!WriteLine5!   
> 

Gruß schnappi

Du bist mein Held. den Punkt vergessen.... ;-D