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-Key: 197807

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

Printed on: April 24, 2024 at 00:04 o'clock

Member: Friemler
Friemler Jan 28, 2013 updated at 18:47:20 (UTC)
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
Member: max5moritz
max5moritz Jan 28, 2013 at 19:44:14 (UTC)
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