top in batch mode, need CPU% for every core

You can use a configuration file for this. The easiest way is to open top, and configure it the way you want. In this case, that means using 1 to get the per-CPU listing. Then have it write a configuration file with Shift+W. After that, it will use that config file whenever that user runs top, and keep the same appearance, even in batch mode.

Note that you'll probably need a $HOME variable defined, if you're using this via cron, or some other environment lacking the standard login definitions.