É muito fraco, mas você precisa usar caminhos relativos sem drive ou barra invertida.
No seu exemplo %datapath%
precisa ter "users\johnny\filespec"
em vez de "c:\users\filespec"
.
Cd \
7z a –tzip myzip.zip users\johnny\tmp\tmp2\TMP2.TXT
Armazenará a estrutura de pastas.
Depois, na mesma pasta em que você fechou o zíper, é possível descompactá-lo. ..
7z x myzip.zip
e 7z o colocarão de volta na estrutura de pastas.
Cuidado, você tem que descompactar a partir da mesma pasta que você zipou porque as pastas serão criadas em sua localização atual.