<?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[Konsolen Shell mit Parametereingaben...]]></title><description><![CDATA[<p>Hallo ich hab bisher ein Konsolenprogramm programmiert bei denen alle Befehle fest in der exe Datei integriert sind. Das negative dabei ist, dass die Datei immer größer wird. Jetzt möchte ich lieber alle Funktionen aus der Konsole in kleine programme splitten, wie z.B. bei &quot;cygwin&quot; da ist ja die bash also die shell und im ordner &quot;bin&quot; sind alle programme. Mit meiner Konsole will ich auch eine art bash erstellen. Hier ist mein bisheriger Eingabe Code zum einlesen von Befehlen:</p>
<pre><code class="language-cpp">//...
int main()
{
//...
string str; //Eingabe String

do
{	
	//Befehl mit Parameter einlesen
	getline(cin, str);

	istringstream cmdline (str);
	string input;
	vector&lt;string&gt; params;

	if (cmdline &gt;&gt; input) 
	{
		string tmp;
		while (cmdline &gt;&gt; tmp) 
		{
			params.push_back (tmp);
		}

/*
--------------------------------------
	Eingelesene Befehle...
--------------------------------------
*/		
		if(input == &quot;help&quot;)
		{              
			help();
		} 

		//-----------------------------
		else if(input == &quot;test&quot;)
		{			
			test();
		}

                //weitere Befehle...

}//ENDE do schleife

}//ENDE main
</code></pre>
<p>Alle Funktionen waren fester Bestandteil der Konsole. Nun hab ich meine Programme im Unterordner &quot;bin&quot;. Hier meine neue Eingabe:</p>
<pre><code class="language-cpp">//...

string str; //Eingabe String

do
{	
	//Befehl mit Parameter einlesen
	getline(cin, str);

	istringstream cmdline (str);
	string input;
	vector&lt;string&gt; params;

	if (cmdline &gt;&gt; input) 
	{
		string tmp;
		while (cmdline &gt;&gt; tmp) 
		{
			params.push_back (tmp);
		}
/*
--------------------------------------
	Eingelesene Befehle...
--------------------------------------
*/
		string src;
		src += '&quot;';
		src += get.ApplicationDirectory() + &quot;bin\\&quot;; //ermittelt den programmpfad und erstellt dann mit bin den pfad zu den programmen
		src += input;
		src += '&quot;';	

		cout &lt;&lt; &quot;Befehl: &quot; &lt;&lt; src &lt;&lt; endl;
		exec(src); //Übergibt den Befehl an system()
</code></pre>
<p>Das mit den &quot;&quot; muss sein, da cmd meckert wenn kein vollständiger pfad steht.<br />
So leute mein problem ist folgender, sobald ich z.b. ein befehl mit parameter übergebe kommen diese nicht an. Könnt ihr mir bitte helfen wie ich diese mit einbaun soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153206/konsolen-shell-mit-parametereingaben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 05:33:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153206.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jul 2006 21:45:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konsolen Shell mit Parametereingaben... on Thu, 13 Jul 2006 21:45:11 GMT]]></title><description><![CDATA[<p>Hallo ich hab bisher ein Konsolenprogramm programmiert bei denen alle Befehle fest in der exe Datei integriert sind. Das negative dabei ist, dass die Datei immer größer wird. Jetzt möchte ich lieber alle Funktionen aus der Konsole in kleine programme splitten, wie z.B. bei &quot;cygwin&quot; da ist ja die bash also die shell und im ordner &quot;bin&quot; sind alle programme. Mit meiner Konsole will ich auch eine art bash erstellen. Hier ist mein bisheriger Eingabe Code zum einlesen von Befehlen:</p>
<pre><code class="language-cpp">//...
int main()
{
//...
string str; //Eingabe String

do
{	
	//Befehl mit Parameter einlesen
	getline(cin, str);

	istringstream cmdline (str);
	string input;
	vector&lt;string&gt; params;

	if (cmdline &gt;&gt; input) 
	{
		string tmp;
		while (cmdline &gt;&gt; tmp) 
		{
			params.push_back (tmp);
		}

/*
--------------------------------------
	Eingelesene Befehle...
--------------------------------------
*/		
		if(input == &quot;help&quot;)
		{              
			help();
		} 

		//-----------------------------
		else if(input == &quot;test&quot;)
		{			
			test();
		}

                //weitere Befehle...

}//ENDE do schleife

}//ENDE main
</code></pre>
<p>Alle Funktionen waren fester Bestandteil der Konsole. Nun hab ich meine Programme im Unterordner &quot;bin&quot;. Hier meine neue Eingabe:</p>
<pre><code class="language-cpp">//...

string str; //Eingabe String

do
{	
	//Befehl mit Parameter einlesen
	getline(cin, str);

	istringstream cmdline (str);
	string input;
	vector&lt;string&gt; params;

	if (cmdline &gt;&gt; input) 
	{
		string tmp;
		while (cmdline &gt;&gt; tmp) 
		{
			params.push_back (tmp);
		}
/*
--------------------------------------
	Eingelesene Befehle...
--------------------------------------
*/
		string src;
		src += '&quot;';
		src += get.ApplicationDirectory() + &quot;bin\\&quot;; //ermittelt den programmpfad und erstellt dann mit bin den pfad zu den programmen
		src += input;
		src += '&quot;';	

		cout &lt;&lt; &quot;Befehl: &quot; &lt;&lt; src &lt;&lt; endl;
		exec(src); //Übergibt den Befehl an system()
</code></pre>
<p>Das mit den &quot;&quot; muss sein, da cmd meckert wenn kein vollständiger pfad steht.<br />
So leute mein problem ist folgender, sobald ich z.b. ein befehl mit parameter übergebe kommen diese nicht an. Könnt ihr mir bitte helfen wie ich diese mit einbaun soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097430</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Thu, 13 Jul 2006 21:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Konsolen Shell mit Parametereingaben... on Fri, 14 Jul 2006 07:23:52 GMT]]></title><description><![CDATA[<pre><code>string src;
        src += '&quot;';
        src += get.ApplicationDirectory() + &quot;bin\\&quot;; //ermittelt den programmpfad und erstellt dann mit bin den pfad zu den programmen
        src += input;
        src += '&quot;';
</code></pre>
<p>da kommt ja dann sowas hier raus:</p>
<pre><code>&quot;dir c:\*&quot;
</code></pre>
<p>ja und das wird dann natürlich als 1 command angesehen und z.B. net<br />
gefunden <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="😉"
    /></p>
<p>also mmn. liegt an den &quot;&quot; !</p>
<pre><code>Das mit den &quot;&quot; muss sein, da cmd meckert wenn kein vollständiger pfad steht.
</code></pre>
<p>was meinst du damit genau?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1097495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097495</guid><dc:creator><![CDATA[Babelduos Geist]]></dc:creator><pubDate>Fri, 14 Jul 2006 07:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to Konsolen Shell mit Parametereingaben... on Fri, 14 Jul 2006 12:38:22 GMT]]></title><description><![CDATA[<p>Habs hinbekommen mit den Parametern:</p>
<pre><code class="language-cpp">string src;
		src += '&quot;';
		src += get.ApplicationDirectory() + &quot;bin\\&quot;;
		src += input;
		src += '&quot;';		

	//Ausführung mit Parameter
	if(params.size() &gt;= 1)
	{
		string cmd; 

		for(int i=0; i &lt;= params.size()-1; i++)
		{
			cmd += params[i] + &quot; &quot;;
		}
		src += &quot; &quot;;
		src += cmd;
		exec(src);

	}

	//Ausführung ohne Parameter
	else
	{	
		exec(src);
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1097680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1097680</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Fri, 14 Jul 2006 12:38:22 GMT</pubDate></item></channel></rss>