Vivado has a funny idea of working directories when in project mode. Usually the current working directory will be inside the .runs/synth_1 folder if its running synth,, or impl_1 if its implementation. And the working directory can chop and change based on whats currently running. Vivado in project mode is really just a wrapper around non-project mode and it can be a real pain.
THe easiest way to see where you are is type "pwd" in the console. This will tell you the current folder - any commands on the tcl console will use this folder. If you use the GUI, it might do something different. But any thing the gui does will be output to the console for you to copy/modify. The Vivado tcl reference is pretty helpful.
If you want to be brave - maybe try running your whole project scripted, and maybe even in non-project mode. And for extra points - run Vivado in tcl command line only mode:
vivado -mode tcl