0

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

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

@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
4

3 回答 3

1

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

于 2010-08-24T01:22:57.453 回答
1

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

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.

%如果变量名前面只有一个字符,则会出错。

于 2010-08-24T01:24:12.220 回答
0

似乎答案会更像这样:

FOR %%F "usebackq" IN (`dir.exe C:\SQLCMD*.SQL`) DO ... 
于 2012-02-08T17:20:35.297 回答