So then your macro is:
/cast Defensive Stance
/equip Your Shield
It’s actually kind of perfect for warriors if you have to switch stances first. The thing with swapping weapons/shields in combat is that as soon as you swap it resets the GCD from where ever it already was. If you have 0.1 sec left on it, then it resets to 1.5 seconds. If you still have 1.5 seconds left on it, then it also resets to 1.5 seconds. So if you swap immediately after using an ability you lose no additional time to GCD.
And then, you’ll want another macro to get your 2h back out.
/cast Devastate
/equip Your 2h
The devastate puts you on GCD, the swapping resets the GCD immediately. You lose no time. Only catch is that you must wait until the GCD is up before you hit the button or you swap before using your ability and reset the GCD with the wrong weapon out. Practice makes perfect. And try to figure out what the other class is doing before you try to get them nerfed.
Edit: actually maybe your devastate should be by itself, and macro battle stance in with your 2h since you’re probably going to want to switch to that again.
Edit2: actually, does changing stances even trigger a GCD? If not then macro the stance change and the weapon swap in with another ability that does trigger it.
For example:
/cast Hamstring
/cast Defensive Stance
/equip Your Shield
Then
/cast Devastate
/cast Battle Stance
/equip Your 2h
If stance doesn’t have a GCD then I think this works.
Edit 3: If you’re curious, this is what my macros are:
/cast Crusader Strike
/equip My Shield
/cast Avenger’s Shield
/equip My 2h
And of course I have macros to do just the swaps by themselves also. You don’t want a side effect all the time. Sometimes you just need to get your 2h back out.