I don't quite understand how the "path is known". you are telling rar.exe to add all files to the archive, run in the background, use the best compression, to execute a particular file when extracted, and to create a self-extracting file, but you never specify what files or folders it should include- it literally isn't known, so it's going to add all the files in your programs' current working directory (inherited by the child process) to the archive.
The ap switch sets the path inside the archive that the files will be added. To change what files are added, You need to specify source files as their own argument, either a set of directories or a set of filenames.
Shell "cmd.exe /c c:\progra~1\winrar\rar.exe a -ibck -m5 -setup=setup.wsf -sfx Setup.exe <path to the files/directory you want in the archive>"