You may in your example above, be better advised using START "" /WAIT, where "" is "EMPTY TITLE".
It's still a pointless exercise to have a file and folder structure over which you have full control and deliberately use naming structures which are not suitable.
The folder inside $1 you have named Install, all of the sub folders and their contained batch files can be named anything at all, so why choose something which means that you need to take special action within their contained installation scripts.
Take for instance the example above, everyone knows that the program is called CCleaner, nobody, except for those directly involved with the Developer cares at installation time who makes it so drop the Piriform_ from both the directory and file names. If I was to only have x64 version of any software then I would include x64 in the names otherwise I know that the software would install on either platform. So since this obviously installs on both platforms, just drop the _x86_&_x64 from the names. Additionally, the installation batch file in every folder doesn't need to carry the same name as the parent folder, if it's in the CCleaner directory it's relatively safe to assume it isn't used to install Opera in the Opera directory, so just tell us what it does by giving it a sensible name. Then you should be creating the individual batch files to use their parent directories if necessary for the current directories in order that you don't have to specifically code it in your working batch script.
START "" /W CMD /C "%~dp0Install\CCLeaner_5.1.5075\install.cmd"
The system above also means that if you wanted to install the following five programs you could use something like this:
FOR %%A IN ("Prog_1" "Prog_2" "Prog_3" "Prog_4" "Prog_5") DO CALL "%~dp0Install\%%~A\install.cmd"