2013-07-10 52 views
0

顯示變量值我正在使用widows XP操作系統,並有批處理文件,我設置了幾個變量值。 當我回顯這些varibales時,我可以看到這些值,但是當我在某些命令中使用它時,我會得到空值作爲它的值。BATCH FILE:無法通過%變量%

示例批處理文件

@ECHO OFF 
      SET "output=select * from employee where empid='160'" 
      CALL SET output=%%output:'=''%% 
      ECHO "%output%" 
sqlcmd -b -h-1 -m-1 -V1 -S testsvr -E -Q "%output%' " -d tesdb 

O/P SELECT * FROM僱員其中EMPID = '' 160 ''

和在SQLCMD命令變量的值是空的空間。

回答

1

嘗試把報價如下:

SET output="select * from employee where empid='160'" 
sqlcmd -b -h-1 -m-1 -V1 -S testsvr -E -Q %output% -d tesdb 
+0

東西都工作正常,但其未來的某個時候,有些時候,可能並不涉及到環境變量,我是否需要 – Nishad

+0

重置如果它工作正常,有時那麼可能是數據集或字符被echo'd是問題。批處理有毒字符。打開一個cmd提示符並輸入你的批處理文件名 - 然後你會看到任何錯誤消息。 – foxidrive

2

我不知道,你想要做什麼。

@ECHO OFF 
SET output=select * from employee where empid="160" 
ECHO %output% 
ECHO sqlcmd -b -h-1 -m-1 -V1 -S testsvr -E -Q '%output%' -d tesdb 

..output是:

 
select * from employee where empid="160" 
sqlcmd -b -h-1 -m-1 -V1 -S testsvr -E -Q 'select * from employee where empid="160"' -d tesdb
+0

我正在嘗試執行sqlcmd,但在執行過程中,%output%value變爲null,然後我回應它,​​出現同樣的問題 – Nishad

+0

您確實刪除了最後一個'echo'? – Endoro

+0

如果'empid =「160」'有雙引號,這不是問題的原因。 「有時候,有時候不是」需要新的硬盤? – Endoro