需要通过Batch脚本文件传递变量参数

时间:2017-01-19 07:08:14

标签: sql batch-file

我有包含sql脚本的properties.txt文件,我需要通过windows批处理文件传递变量值。

问题场景查询是:

SELECT a,b,c 
FROM dual 
where TO_CHAR(EXPECTED_RECOGNITION_DATE,'MM-YYYY') = TO_CHAR(ADD_MONTHS(sysdate,-1),'MM-YYYY')

我想通过变量参数传递值,这样函数:TO_CHAR(ADD_MONTHS(sysdate,-1),'MM-YYYY')将提供动态输出:" 12-2016" &安培;在下个月它将是" 01-2017"

请提供您的想法。

1 个答案:

答案 0 :(得分:0)

承认我们是在2017年1月,为了批量计算“12-2016”,你可以这样做:

::get current month and year
for /F "tokens=1-3 delims=/ " %%a in ('date /t') do (
  set month=%%b
  set year=%%c
)

::get the previous month
if "%month" NEQ "01" (
  set /A month=%month%-1
) else (
  set month=12
  set /A year=%year%-1
)

::if things like "1-2017" aren't valid, you can add a zero
set month=00%month%
set month=%month:~-2%

::compute the final date
set date=%month%-%year%

::now call your request like @user2956477 said, using %date%
::(don't forget to add quotes if needed)

如果您对“for”语法感到不安,请查看该人(在您的终端中键入for /?)。请特别注意/F选项。