Backwards and forwards polyglot quine! You must make a polyglot that outputs its source code in one language and its source code backward in another. Unlike the normal rules, you are allowed to read the current file or use a builtin to get the source code of your submission and reverse that in one language. Your source code cannot be a palindrome.

For example, if your source code is abcxyz, it must output abcxyz in one language and zyxcba in another. If your code is abcxyzyxbca, it's invalid because it's a palindrome.

Good luck!
Batch / bash + tac, 39 bytes

:;tac -r -s '.\|'$'\n' $0;exit
@type %0


Outputs forwards in Batch. Explanation: Batch sees the first line as a label and ignores it, while the second line simply copies the source file to STDOUT. (Note that you need to invoke the file including extension, or change %0 to %~f0.) bash sees four commands:


: does nothing (same as true)
tac -r -s '.\|'$'\n' $0


-r puts tac into regex mode
-s specifies a regex
'.\|'$'\n' is the regex, composed of


. any character except newline
\| or
$'\n' a newline

The upshot is that tac splits the file into characters rather than lines.

exit stops the script, ignoring the fourth command
@type %0 (ignored)