max5moritz
Goto Top

Verbotene Zeichen per Batch in Text-Datei schreiben.

Hallo Batchler,

ích versuche gerade per Batch eine neue Batch zu erstellen.

Dazu habe ich folgenden Skript erstellt. Der Einfachkeit wegen habe ich auch gleich das derzeitige Ergebnis und meinen Wunsch /Ziel darunter gesetzt.

Was mache ich verkehrt? Oder geht das gar nicht, diese Batch-Sonderzeichen per ECHO in eine Datei umzuleiten?

:start-set
echo if "%~1"=="progs" goto :%~1 > "%~dp0start-set.bat"  
echo :start>>"%~dp0start-set.bat"  
echo.>>"%~dp0start-set.bat"  
echo :progs>>"%~dp0start-set.bat"  
echo Diesen Bereich anpassen und abspeichern.>>"%~dp0start-set.bat"  
echo.>>"%~dp0start-set.bat"  
echo if "%~2"=="" (goto :eof) ELSE goto :%~2 >>"%~dp0start-set.bat"  
echo.>>"%~dp0start-set.bat"  
echo :stamp>>"%~dp0start-set.bat"  
echo set "stamp=%date:~-4%%date:~3,2%%date:~0,2%_%time::=%" >>"%~dp0start-set.bat"  
echo set "stamp=%stamp:~0,-3%" >>"%~dp0start-set.bat"  
echo goto :eof>>"%~dp0start-set.bat"  
echo.>>"%~dp0start-set.bat"  
echo :ende>>"%~dp0start-set.bat"  
ping -n 2 localhost 1>NUL 2>NUL
notepad "%~dp0start-set.bat"  
goto :eof

--------------- Ergebins ------------------------
if ""=="progs" goto :   
:start

:progs
Diesen Bereich anpassen und abspeichern.

if ""=="" (goto :eof) ELSE goto :   

:stamp
set "stamp=20130128_180503,95"   
goto :eof

:ende
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
............. Das Ziel ....................
if "%~1"=="progs" goto :%~1  
:start

:progs
Diesen Bereich anpassen und abspeichern.

if "%~2"=="" (goto :eof) ELSE goto :%~2  

:stamp
set "stamp=%date:~-4%%date:~3,2%%date:~0,2%_%time::=%"  
set "stamp=%stamp:~0,-3%"  
goto :eof

:ende
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Danke im Voraus für die Mithilfe.

Gruß
max5moritz

Content-ID: 197807

Url: https://administrator.de/forum/verbotene-zeichen-per-batch-in-text-datei-schreiben-197807.html

Ausgedruckt am: 22.12.2024 um 22:12 Uhr

Friemler
Friemler 28.01.2013 aktualisiert um 19:47:20 Uhr
Goto Top
Hallo max5moritz,

das geht schon, Du musst die in Batchscript als Steuerzeichen interpretierten Zeichen jedoch "escapen". In Deinem Beispiel sind es nur Prozentzeichen, die muss man nur verdoppeln. Andere Zeichen (z.B. &, <, >, |, ^) muss man mit ^ "escapen", das ^-Zeichen wird dann so ^^ "escaped".

Dein Script in funktionierender Form:
:start-set
> "%~dp0start-set.bat" echo.if "%%~1"=="progs" goto :%%~1  
>>"%~dp0start-set.bat" echo.:start  
>>"%~dp0start-set.bat" echo.  
>>"%~dp0start-set.bat" echo.:progs  
>>"%~dp0start-set.bat" echo.Diesen Bereich anpassen und abspeichern.  
>>"%~dp0start-set.bat" echo.  
>>"%~dp0start-set.bat" echo.if "%%~2"=="" (goto :eof) else (goto :%%~2)  
>>"%~dp0start-set.bat" echo.  
>>"%~dp0start-set.bat" echo.:stamp  
>>"%~dp0start-set.bat" echo.set "stamp=%%date:~-4%%%%date:~3,2%%%%date:~0,2%%_%%time::=%%"  
>>"%~dp0start-set.bat" echo.set "stamp=%%stamp:~0,-3%%"  
>>"%~dp0start-set.bat" echo.goto :eof  
>>"%~dp0start-set.bat" echo.  
>>"%~dp0start-set.bat" echo.:ende  

ping -n 2 localhost 1>NUL 2>NUL
notepad "%~dp0start-set.bat"  

Gruß
Friemler
max5moritz
max5moritz 28.01.2013 um 20:44:14 Uhr
Goto Top
@Friemler

Herzlichen Dank, und optisch so schön, das gefällt mir. Und findet auch gleich dort und da seine Anwendung.

Gruß
max5moritz