That is possible, though not directly.
The "Send commands to this target" option at the profile level (as well as the "Send command to this target:" option at the command level) accepts tokens, which can in turn retrieve the value of a variable.
So, what you can do is to use a command that takes a passed text value, and stores that in a profile-scoped variable.
E.G.
The "Send commands to this target" option could be set to
{TXT:>>CommandsTarget}
and you could have a command like
Set commands target
Set text [>>CommandsTarget] to '{TXT:~passedText1}'
Write [Blue] 'Commands target set to: "{TXT:~passedText1}"' to log
so you can then enter something like this from a command prompt:
.\VoiceAttack.exe -command "set commands target" -PassedText "\"*notepad\""
which should show
External command : 'Set commands target'
Commands target set to: "*notepad"
in the log on the main window.
Executing a command at that point, assuming a window with its title ending in "notepad" exists (and that the target isn't being overridden at the command level), should result in input getting sent to that window.
Something to note is that variables logically won't have a value assigned to them yet when the profile loads initially, so you'd have to always set it from the command line first.
If that is undesirable, you can assign a command to the "Execute a command each time this profile is loaded" option, with contents like
Begin Text Compare : [>>CommandsTarget] Has Not Been Set
Set text [>>CommandsTarget] to 'My default target'
End Condition
As a persistent profile scope (the ">>" prefix) is being used, the commands target will remain set to whichever value you last assigned to it, as long as VoiceAttack is running.
If you'd prefer the target to be reset to default when the profile is reloaded, you could use the non-persistent profile scope (the ">" prefix).