GELÖST Batchbefehl in C-Programm integrieren

Diskutiere Batchbefehl in C-Programm integrieren im Programmierung Forum im Bereich Software Forum; Hallo liebe Community Ich habe ein kleines Problem. Ich bin Systemtechniker und muss für meinen Arbeitgeber ein Programmschreiben. Es funktioniert...
B

Battlesnake

Threadstarter
Mitglied seit
25.08.2010
Beiträge
25
Alter
28
Standort
CH-8590 Romanshorn
Hallo liebe Community
Ich habe ein kleines Problem. Ich bin Systemtechniker und muss für meinen Arbeitgeber ein Programmschreiben. Es funktioniert bis jetzt alles was Funktionieren muss ausser einem kleinen Problem.

Code:
int drives(){
system("for %%i in ( a b c d e f g h i j k l m n o p q r s t u v w x y z ) do if exist %%i:\nul echo Laufwerk %%i existiert");
}
Das Problem ist: Als *.bat funktioniert der Command aber als direkteingabe kommt folgende Fehlermeldung:

Code:
"%%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
mit system(""); funktioniert es nicht... ebenfalls:

Code:
"%%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Ich muss es irgendwie schaffen, es so in der Art zu machen. Ziel ist es, das alle Laufwerke angezeigt werden, die bereits verwewndes werden.

Ebenfalls währe ich fron wenn Ihr mir sagt, was noch an #include hinzugefügt werden muss (sofern es muss).

Bereits Integriert
Code:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define DllImport   __declspec("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)
Ich hoffe Ihr könnt mir helfen

Grüsse Pattlesnake
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.238
Probier mal mit nur einem %, also %i statt %%i

Oder ganz ausführlich die cmd aufrufen
...system ("cmd /c for ...")...
 
B

Battlesnake

Threadstarter
Mitglied seit
25.08.2010
Beiträge
25
Alter
28
Standort
CH-8590 Romanshorn
Hallo automattis
Vielen Dank erstmal für die schnelle Hilfe, leider hat es nicht funktioniert
- %i -->Syntaxfehler
- system ("cmd /c for ...") --> "%%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
- system ("cmd...") mit %i -->Syntaxfehler

Ich hoffe das bald weitere Hilfreiche Tipps erscheinen.
Gruss Battlesnake
 
Peter Schirmer

Peter Schirmer

Dienstleister / Moderator
Mitglied seit
14.04.2006
Beiträge
7.060
Alter
39
Standort
7th Avenue, Ecke XP und Vista, 8ter Stock, Wohnung
Ich bin zwar kein C-Entwickler, aber vielleicht hilft dir folgender Denkansatz aus VB.NET

Imports System.IO
Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

Dim Verz As New DirectoryInfo("C:\treiber")

If Verz.Exists Then


MsgBox("Ja")

Else

MsgBox("Nein")

End If

End Sub
End Class
 
B

Battlesnake

Threadstarter
Mitglied seit
25.08.2010
Beiträge
25
Alter
28
Standort
CH-8590 Romanshorn
Hallo Peter Schirmer
Hab es gerade kurz ausprobiert. Funktioniert leider nicht. Aber danke für die Unterstützung.

Gruss Battlesnake
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.238
Ich hab's gerade mal nachgebaut.
Mit einem %-Zeichen an allen drei Stellen geht es.
UND: \nul muss \\nul sein. Das ist wohl der Hauptgrund.

Nachtrag: und damit's schöner wird, vor das if noch ein @
 
Zuletzt bearbeitet:
B

Battlesnake

Threadstarter
Mitglied seit
25.08.2010
Beiträge
25
Alter
28
Standort
CH-8590 Romanshorn
Wunderbar. der Befehl funktioniert nun. jetzt muss ich nur noch ein @echo off vornehin setzen, eine idee?

Nachtrag: Hab nun die Lösung gefunden. Für den Fall, das jemand das benötigen sollte: Hier die lösung

Code:
system("@echo off && @for %i in ( a b c d e f g h i j k l m n o p q r s t u v w x y z ) do if exist %i:\\nul echo Laufwerk %i existiert");
 
Zuletzt bearbeitet:
Thema:

Batchbefehl in C-Programm integrieren

Batchbefehl in C-Programm integrieren - Ähnliche Themen

  • Druckeinstellungen werden nicht für alle Programme gespeichert

    Druckeinstellungen werden nicht für alle Programme gespeichert: Hallo, seit dem Umstieg auf Windows 10 werden meine Druckeinstellungen (schwarzweiß, Entwurfsmodus, etc.) nicht mehr für jedes Programm...
  • Windows 10 programmen unterschiedliche soundkarten zuweisen

    Windows 10 programmen unterschiedliche soundkarten zuweisen: Hallo liebe Experten ! Ich versuche schon seid längerem herauszufinden ob es irgendwie möglich ist Programmen ,die beim Start nur die als...
  • Standard-E-Mail-Programm

    Standard-E-Mail-Programm: Als Standard-E-Mail-Programm möchte ich mit dem E-Mail-Programm von T-Online arbeiten, so dass sich dieses automatisch öffnet, wenn ich im...
  • SSD per Batchbefehl identifizieren

    SSD per Batchbefehl identifizieren: Kann mir jemand sagen wie ich per Batchbefehl zweifelsfrei ermitteln kann ob eine SSD im System werkelt?
  • Batchbefehl um einen lokalen User zu renamen

    Batchbefehl um einen lokalen User zu renamen: Hallo Leute, gibt es einen Batchbefehl um den lokalen User zu renamen ? Suche seit 4 h, habe aber nur net user zum erstellen und löschen...
  • Ähnliche Themen

    Oben