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-ID: 331712

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

StefanKittel
StefanKittel 09.03.2017 um 17:35:50 Uhr
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
132658
Lösung 132658 09.03.2017 aktualisiert um 17:45:46 Uhr
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
twiceface
twiceface 09.03.2017 um 21:59:54 Uhr
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