batch file - Using one variable in the SET statement of another variable -
i writing batch script uses sqlcmd
dump tables database server onto local machine. construct query such have flexibility specify table name. query gets constructed depending on table name, gets used in sqlcmd
command. code snippet construct query shown below:
@echo off set tablename = testdb set dumptable="set nocount on; select * %tablename%" echo %dumptable%
on running script getting following output
"set nocount on; select * "
the tablename
variable not getting substituted in set statement. how should modify script achieve output:
"set nocount on; select * testdb"
you must not have whitespace around =
sign in variable assignments. replace this:
set tablename = testdb
with this:
set tablename=testdb
also, shouldn't have double quotes around value in variable assignment, because way double quotes become part of value. it's better practice put double quotes around whole assignment, , quote variable necessary when it's used, e.g.:
set "tablename=testdb" set "dumptable=set nocount on; select * %tablename%" sqlcmd -d database -q "%dumptable%"
Comments
Post a Comment