VS2012 seems to randomly pick $(ItemPath) now. Among other uses, I use this for p4 edit command, and for a show in explorer command (why is this not in VS), and for jump to counterpart (why is this not in VS, jump to header doesn't jump back to .cpp). I use the p4 edit command since we have built-in source control disabled (too slow).
This has always worked in previous VS installs. If you select a source window, or select an item from the Solution Explorer, then $(ItemPath) should reflect that name.