Voilà :
ShellExecute(Handle, Nil, 'CMD' , '/k "C:/Program Files/Program'Action/SmartCopy/Commandes.bat"', Nil ,SW_HIDE);
Avec une seule apostrophe

Start et /Wait ne sont pas utiles ici et faisaient planter la commande
Le comportement est exactement le même
c'est le switch /k qui détermine si on attend ou non
@+
Cirec