首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从批处理文件中的用户获取输入日期

从批处理文件中的用户获取输入日期
EN

Stack Overflow用户
提问于 2016-07-26 21:28:15
回答 1查看 1.6K关注 0票数 0

我试图通过批处理文件运行SQL查询,当我试图这样做时,我正在

无效参数错误

下面是我正在尝试运行SQL脚本的批处理文件

代码语言:javascript
复制
:start

cls

@echo ------BILLING REPORT---------

@echo Please enter billing report Date in (YYYY/MM/DD)

@echo off 

::set /P D = Enter Date:  

::Date %Date% > Billing_Data.sql

PAUSE

sqlcmd -S database\instance_name -E -i "C:\Users\rb54761\Deskto\rb54761\Billing_Data_For_Certs_New.sql" > Output.txt -v Date = '2016-07-01'

:: -o "C:\Users\rb54761\Desktop\rb54761\Output.txt"

PAUSE

COPY C:\Users\rb54761\Desktop\rb54761\Output.txt C:\Users\rb54761\Desktop
PAUSE

goto start

为此,我需要1。当用户输入日期时,数据将根据该日期获取。2.我希望在where子句中添加该日期,以便数据将相应地在下面获取,这是我要输入数据的where子句。

代码语言:javascript
复制
WHERE
DateCompleted > CONVERT(DATETIME, '$(Date)', 102))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 22:05:05

在命令行中使用-v Date = '2016-07-01',单引号被认为是sqlcmd变量的一部分。在您的脚本中,您使用了'$(Date)',它变成了''2016-07-01'',错误应该是相当明显的。

从命令行或脚本中删除一组引号,所有这些都会正常工作。

如果您希望引用命令行中的值,以防止出现有毒字符,或者包括批处理令牌分隔符(如空格或逗号),则必须使用双引号:类似于

-v var = "Some value with spaces"。在这种情况下,双引号是,而不是值中包含的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38600175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档