sql里面用语句执行一个bat批处理文件

老牛10岁了 2011-09-23 02:14:47
我做了一个自动上传文件到ftp的功能。意思是备份数据库文件的。我用bat直接打开执行没问题。但是在数据库里面用语句执行的时候就提示我没有访问权限..请高人解答!


exec Sp_Configure 'Xp_CmdShell',1
RECONFIGURE --配置可以执行CMD命令
exec xp_cmdshell 'D:\databackup\ftp.bat'
exec Sp_Configure 'Xp_CmdShell',0 --关闭执行CMD命令
RECONFIGURE

我D盘下有ftp.bat这个文件。。代码如下

echo open 服务器IP地址 >ftp.txt
echo FTP登录名>>ftp.txt
echo FTP登录密码>>ftp.txt
set start=1
set destbakNum=16
set sourceNum=15
set fileName=Card
set runType=A
set xiahuaxian=_
set houzhuiming=.bak
echo del %fileName%%xiahuaxian%%sourceNum%%xiahuaxian%%runType%%houzhuiming%>>ftp.txt
:loop
if %sourceNum%==1 goto loopend
set /A destbakNum=%destbakNum%-1
set /A sourceNum=%sourceNum%-1
set dest=%fileName%%xiahuaxian%%destbakNum%%xiahuaxian%%runType%%houzhuiming%
set source=%fileName%%xiahuaxian%%sourceNum%%xiahuaxian%%runType%%houzhuiming%
echo rename %source% %dest%>>ftp.txt
goto loop
:loopend
echo put D:\databackup\%fileName%%houzhuiming%>>ftp.txt
echo rename %fileName%%houzhuiming% %fileName%%xiahuaxian%%start%%xiahuaxian%%runType%%houzhuiming%>>ftp.txt
echo bye>>ftp.txt
ftp.exe -s:ftp.txt
del ftp.txt


声明。直接把文本后缀名改成bat执行后。一点问题都没有。。可是用上面的sql执行后。发现有提示ftp.txt无法访问。求高人解决!

只有20分了。全部给上啦!
...全文
333 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
老牛10岁了 2011-09-30
  • 打赏
  • 举报
回复
换台机子就可以了。晕!
longzi5566 2011-09-27
  • 打赏
  • 举报
回复
应该是权限问题
老牛10岁了 2011-09-23
  • 打赏
  • 举报
回复
怎么检查?我用的是windows登录我的sql server 在master里面执行这些语句

exec xp_cmdshell 'echo open 服务器IP'
上面一句执行后没问题
exec xp_cmdshell 'echo open 服务器IP >ftp.txt'
下面一句执行后,就会出现拒绝访问。是因为>ftp.txt的原因。。

是不是C盘不让写入呢?
--小F-- 2011-09-23
  • 打赏
  • 举报
回复
是用SA账户登录的么?
-晴天 2011-09-23
  • 打赏
  • 举报
回复
检查一下,是用什么用户名来执行的.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧