The code where the CLI args placeholders are substituted (in CliInterface::copyFiles()) is a nightmare and works only by chance. The cliunarchiver plugin exposed a bug in (at least) the replacement of PasswordSwitch.
The only way to fix it is to trash the old algorithm and rewrite it from scratch. We don't do anymore black magic with the indexes, to edit the args list. We just create a new empty list and we append stuff to it.
New functions are introduced to simplify the for loop.