The closest I can figure is that the compiler-independant option, console shell, is not configurable, and is stuck using a linux file (xterm)
This is disabled because it only makes sense under linux. For windows the command shell is standard (cmd.exe or command.exe). In linux there are too many shells and terminals to choose from 

Note that the commands you can use 
must be existing executables. This means you can use 
cp.exe, but you can't use 
copy because 
copy is an internal shell command (search for 
copy.exe - you 'll find nil).
I 'm not sure, but I think 
start is also an internal command.
To overcome this limitation, you can enter your commands in a batch file and use this in the commands box.
Ideally, I would have it commit my code to a repository on a successful build, but I am having trouble atm.
Keep in mind that if this action asks you for a password, you will not see it because codeblocks doesn't run the commands in an interactive shell...
In this case, a solution would be (I haven't tried it!):
Suppose you have your commands in a batch file named 
commit_after_build.bat.
You would normally use as a post-build command in codeblocks: 
commit_after_build.batTo run this in an interactive shell, use this: 
cmd /k commit_after_build.bat.
This will run your commands in an interactive shell ("dos" box) and keep it open until the commands finish executing.
HTH,
Yiannis.