大家好我正在编写一个批处理脚本,它必须读取存在于文件夹中的一组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
答案 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 ...