cmd - Parameterübergabe ohne Leerzeichen



  • Hallo Leute,
    ich möchte mit dem cmd-Befehl: „ for %? In (<ZIELPFAD\*.DATEITYP>) do <MEINE ANWENDUNG> %?
    mein Programm die Dateien abarbeiten lassen. Leider weisen manche Dateien Leerzeichen in dem Dateinamen auf und so wird immer nur der erste Teil des Dateinamens als Parameter übergeben. Z.B. wird der Dateiname "BMW AG.txt" nur als "BMW" übergeben. Wie könnte ich dieses Problem lösen?

    Mein Code sieht ungefähr so aus:

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <stdio.h>
    #include <windows.h>
    
    using namespace std;
    using namespace System;
    
    bool FileExists(const std::string & StrFilename); 
    
    int main(int argc, const char* argv[])
    
    {
        setlocale (LC_ALL, "");
    
        cout << " Eingegebener Dateiname " << argv[1] << "!" << endl;
    
        if ((argv[1] != NULL) &&  (FileExists(argv[1])==true)) 
    		{
    		//öffne Datei, tue irgendetwas, etc.
    		}
    }
    
    bool FileExists(const std::string & StrFilename) 
    { 
          return( (GetFileAttributesA(StrFilename.c_str()) == INVALID_FILE_ATTRIBUTES) 
                	? false              
    : true);
    }
    

    Viele Grüße
    ..und danke für Vorschläge im Voraus!



  • Den Parameter in Anführungsstrichen übergeben?

    for %? In (<ZIELPFAD\*.DATEITYP>) do <MEINE ANWENDUNG> "%?"
    


  • Danke. Hätte nicht gedacht, dass die Lösung so nah ist! 😃


Anmelden zum Antworten