批处理文件中的SQLCMD用法

时间:2010-08-24 01:17:13

标签: sql-server-2005 batch-file sqlcmd

大家好我正在编写一个批处理脚本,它必须读取存在于文件夹中的一组SQL文件,然后使用SQLCMD执行它们。

当我尝试执行它时,不会创建任何输出文件。我不确定我错在哪里,我不知道如何调试脚本。有人可以用脚本帮助我吗?

@echo off

FOR %F IN (C:\SQLCMD*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %F -o C:\SEL.txt -p -b

IF NOT [%ERRORLEVEL%] ==[0] goto get_Error

:Success echo Finished Succesffuly exit /B 0 goto end

:get_error echo step Failed exit /B 40

:end

3 个答案:

答案 0 :(得分:1)

尝试右键单击批处理文件并以管理员身份运行。

答案 1 :(得分:1)

如果这实际上是在批处理文件中(不是在命令行手动执行),那么%F变量需要将%个字符加倍,因为cmd的方式.exe执行从批处理文件中读取的行:

FOR %%F IN (C:\SQLCMD*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %%F -o C:\SEL.txt -p -b

虽然我以为你会得到一个

F was unexpected at this time.
如果变量名前只有一个%字符,则出现

错误。

答案 2 :(得分:0)

似乎答案更像是这样:

FOR %%F "usebackq" IN (`dir.exe C:\SQLCMD*.SQL`) DO ...