You need to escape the quotes with backslashes, like this.
Code:
set searchtag=Alternate history
for /f %%A in ('calibredb search tags:\"%searchtag%\"') do (echo %%A)
You probably also want to put an equals in front of %searchtag% to force exact matching, as in
Code:
set searchtag=Alternate history
for /f %%A in ('calibredb search tags:\"=%searchtag%\"') do (echo %%A)