This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem with user commands

Hi all,

I want to use a user command to post-process the axf file. I enclose the command in quotes to preserve spaces in the path. However, if I also use quotes to enclose parameters in quotes, then the external command does not get called. If I don't enclose the parameters in quotes, the external command is called but the parameter is not parsed correctly.

As an example, a batch file called test_cmd.bat:

echo Parameter 1 = %1
echo Parameter 2 = %2

If I call this using

"C:\nXDS\nXDS Interface Processor\Application\Release\test_cmd.bat" #L

I get

User command #2: "C:\nXDS\nXDS Interface Processor\Application\Release\test_cmd.bat" C:/nXDS/nXDS Interface Processor/Application/Release/Obj/nXDS.axf
C:\nXDS\nXDS Interface Processor\Application>echo Parameter 1 = C:/nXDS/nXDS
Parameter 1 = C:/nXDS/nXDS
C:\nXDS\nXDS Interface Processor\Application>echo Parameter 2 = Interface
Parameter 2 = Interface
".\Release\Obj\nXDS.axf" - 0 Error(s), 0 Warning(s).

The batch file is called but the parameter is split by the spaces.

If I call using

"C:\nXDS\nXDS Interface Processor\Application\Release\test_cmd.bat" "#L"

I get

User command #2: "C:\nXDS\nXDS Interface Processor\Application\Release\test_cmd.bat" "C:/nXDS/nXDS Interface Processor/Application/Release/Obj/nXDS.axf"
--- Error: User Command terminated, Exit-Code = 1
".\Release\Obj\nXDS.axf" - 1 Error(s), 0 Warning(s).

The batch file does not appear to have been called when both the command and parameter are in quotes.

Apart from the obvious workaround of not using a path containing spaces, is there any solution for this problem?

Regards

Parents
  • The essence of the reply is: Don't do that, then

    The "that" in question here is "store stuff in paths that contain blanks".
    Nor any other funny characters, for that matter.
    It just doesn't work in the long run.

    It took Microsoft in their infinite "wisdom" only about one decade to finally revert their position of trying to ram down everybody's throat the entirely,
    obviously gratuitous choice for "c:\Documents and Settings".
    The only aspect of that choice that ever made the least bit of sense (as perverted as it is) was that it
    forced every Windows programmer to try and support blanks in paths. Most eventually succeeded to some more or less sufficient extent.

    Only then, after had finally gotten on everybody's nerves enough, did Microsoft finally switch back to what would obviously have been the
    right choice all along: "c:\Users". Mission accomplished, apparently.

Reply
  • The essence of the reply is: Don't do that, then

    The "that" in question here is "store stuff in paths that contain blanks".
    Nor any other funny characters, for that matter.
    It just doesn't work in the long run.

    It took Microsoft in their infinite "wisdom" only about one decade to finally revert their position of trying to ram down everybody's throat the entirely,
    obviously gratuitous choice for "c:\Documents and Settings".
    The only aspect of that choice that ever made the least bit of sense (as perverted as it is) was that it
    forced every Windows programmer to try and support blanks in paths. Most eventually succeeded to some more or less sufficient extent.

    Only then, after had finally gotten on everybody's nerves enough, did Microsoft finally switch back to what would obviously have been the
    right choice all along: "c:\Users". Mission accomplished, apparently.

Children