<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Struktur in einer Batchdatei]]></title><description><![CDATA[<p>Das schaut auf den ersten Blick vielleicht ein bißchen konfus aus, aber ich hab mich wieder einmal den halben Nachmittag mit dem Windows 2000 - Kommandozeileninterpreter herumgeschlagen und mit altbekannten Problemen gerungen: mehr als vier &quot;gotos&quot; zu verwenden lässt im Kopf eines halbwegs gebildeten Programmierers Suizidgedanken aufkeimen und die Alternative (for) lässt einen periodisch wiederkehrend alle fünfeinhalb Minuten daran denken, eine bash zu installieren.</p>
<p>Dann ist mir da die verhängisvolle Idee gekommen: Man könnte doch zum Beispiel folgendes formulieren:</p>
<pre><code>@echo off
setlocal

set var=0
goto testexpr
:wstart
    echo %var%
    set /a var=%var%+1
:testexpr
if %var% lss 3 goto wstart
</code></pre>
<p>Das würde ein Verhalten simulieren, das gemeinhin von einer while-Schleifenkontruktion erwartet wird, aber um Größenordnungen schwerer zu durchschauen wäre. Wenn man jetzt die Variablensubstitution geschickt einsetzt, ist es vielleicht möglich, <strong>prinzipiell</strong> etwas wie das Folgende zu schreiben:</p>
<pre><code>@echo off
setlocal

set var=0
%while% %var% lss 3
    echo %var%
    set /a var=%var%+1
%endwhile%
</code></pre>
<p>Das wäre schon wesentlich angenehmer. Zwei Variablen, um die Schleife zu begrenzen, irgendwo ein Ausdruck, der von &quot;if&quot; ausgewertet wird (%var% lss 3), der Rest wird zur Laufzeit geeignet ersetzt. Dazu wäre nur eine recht kleine Bibliothek notwendig, die am Anfang der Datei aufgerufen wird, und die nötigen Variablen definiert, sodass eine halbwegs strukturierte Möglichkeit zu Programmieren offenstünde. Ich schreibe ausdrücklich prinzipiell, weil mir das konkret nicht so elegant gelingen will (Man müsste einen Zeilenumbruch in eine Variable quetschen können, der zu bewertende Ausdruck sollte sinnvollerweise am Anfang der Schleife stehen, etc.). Fällt da jemandem was ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/46288/struktur-in-einer-batchdatei</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Jul 2026 09:49:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/46288.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Aug 2003 14:17:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struktur in einer Batchdatei on Mon, 18 Aug 2003 14:17:34 GMT]]></title><description><![CDATA[<p>Das schaut auf den ersten Blick vielleicht ein bißchen konfus aus, aber ich hab mich wieder einmal den halben Nachmittag mit dem Windows 2000 - Kommandozeileninterpreter herumgeschlagen und mit altbekannten Problemen gerungen: mehr als vier &quot;gotos&quot; zu verwenden lässt im Kopf eines halbwegs gebildeten Programmierers Suizidgedanken aufkeimen und die Alternative (for) lässt einen periodisch wiederkehrend alle fünfeinhalb Minuten daran denken, eine bash zu installieren.</p>
<p>Dann ist mir da die verhängisvolle Idee gekommen: Man könnte doch zum Beispiel folgendes formulieren:</p>
<pre><code>@echo off
setlocal

set var=0
goto testexpr
:wstart
    echo %var%
    set /a var=%var%+1
:testexpr
if %var% lss 3 goto wstart
</code></pre>
<p>Das würde ein Verhalten simulieren, das gemeinhin von einer while-Schleifenkontruktion erwartet wird, aber um Größenordnungen schwerer zu durchschauen wäre. Wenn man jetzt die Variablensubstitution geschickt einsetzt, ist es vielleicht möglich, <strong>prinzipiell</strong> etwas wie das Folgende zu schreiben:</p>
<pre><code>@echo off
setlocal

set var=0
%while% %var% lss 3
    echo %var%
    set /a var=%var%+1
%endwhile%
</code></pre>
<p>Das wäre schon wesentlich angenehmer. Zwei Variablen, um die Schleife zu begrenzen, irgendwo ein Ausdruck, der von &quot;if&quot; ausgewertet wird (%var% lss 3), der Rest wird zur Laufzeit geeignet ersetzt. Dazu wäre nur eine recht kleine Bibliothek notwendig, die am Anfang der Datei aufgerufen wird, und die nötigen Variablen definiert, sodass eine halbwegs strukturierte Möglichkeit zu Programmieren offenstünde. Ich schreibe ausdrücklich prinzipiell, weil mir das konkret nicht so elegant gelingen will (Man müsste einen Zeilenumbruch in eine Variable quetschen können, der zu bewertende Ausdruck sollte sinnvollerweise am Anfang der Schleife stehen, etc.). Fällt da jemandem was ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/335131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/335131</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Mon, 18 Aug 2003 14:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in einer Batchdatei on Tue, 19 Aug 2003 17:52:55 GMT]]></title><description><![CDATA[<p>Statt Batch würde ich an Deiner Stelle VBS nehmen. Damit kann man viele administrative (und destruktive <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) Sachen machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/336206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/336206</guid><dc:creator><![CDATA[bIce]]></dc:creator><pubDate>Tue, 19 Aug 2003 17:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in einer Batchdatei on Tue, 13 Feb 2007 12:47:51 GMT]]></title><description><![CDATA[<p>(Einige Jahre der Forschung sind vergangen)</p>
<p>Ich weiß nun: es wird mir nie gelingen, die Variablensubstitution bei einem Zeilenumbruch in der Variablen nicht stoppen zu lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228065</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Tue, 13 Feb 2007 12:47:51 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in einer Batchdatei on Tue, 13 Feb 2007 13:54:57 GMT]]></title><description><![CDATA[<p>19.08.2003-13.02.2007<br />
das ist doch mal was feines - so lange gegruebelt und immernoch nicht VBS eingesetzt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228138</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 13 Feb 2007 13:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in einer Batchdatei on Tue, 13 Feb 2007 22:04:50 GMT]]></title><description><![CDATA[<blockquote>
<p>das ist doch mal was feines - so lange gegruebelt und immernoch nicht VBS eingesetzt ?</p>
</blockquote>
<p>Igitt: Basic! Nein, wäre unsportlich. Siehe:</p>
<p><a href="http://www.stallman.org/articles/on-hacking.html" rel="nofollow">http://www.stallman.org/articles/on-hacking.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228423</guid><dc:creator><![CDATA[cheopz]]></dc:creator><pubDate>Tue, 13 Feb 2007 22:04:50 GMT</pubDate></item></channel></rss>