(我知道这实际上不适合在这里,但我无法在 Stack Exchange 上提问)
我正在创建一个批处理文件,但收到此错误消息:“sqlcmd”不是内部或外部命令,也不是可操作程序或批处理文件。
我知道我的代码为什么错了,但不知道如何修复它。我没有 MYSQL,也没有使用 Microsoft SQL Server 2005,我使用的是 SQLyog,而且没有 sqlcmd,所以我该将我的代码改为何?
这是我的代码:
@echo off
cls
set /p SName=Server Name :
set /p UName=User Name : root
set /p Pwd=Password :
set /p DbName=Database Name : test
set /p choice=ARE YOU SURE TO EXECUTE SCRIPTS in %DbName% (y/n) ?
if '%choice%'=='y' goto begin
goto end
:begin
if exist _dataimport.txt del _dataimport.txt
@echo on
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "UDDs"\UDDs.sql >> _dataimport.txt 2>&1
@notepad _dataimport.txt
:end
答案1
假设您已正确安装 SQL 软件,如果命令提示符返回以下内容:
(软件名称) 不被识别为内部或外部命令,可运行程序或批处理文件。
这意味着您的软件可能没有放入%PATH%
环境变量定义的文件夹中。使用后者,可以调用可执行应用程序而无需定义其完整路径。然后,要解决这个问题,您可以:
.exe
在批处理脚本中定义文件的完整路径- 或者将
.exe
文件移动到定义的目录中%PATH%
set
您可以通过从终端调用命令或打开来查看此环境变量定义的目录列表Control Panel > System > Advanced > Environment Variables