一个批处理文件t.bat内容如下:
copy c:\总销售.xls z: /y
copy c:\当日销售.xls z: /yz盘是一个网络驱动器,单独执行这个批命令没有问题,文件可以顺利拷贝到
z盘但在sqlserver的查询分析器里面无论是执行
exec master..xp_cmdshell 'c:\t.bat'
还是执行
exec master..xp_cmdshell 'copy c:\总销售.xls z: /y'
都会出错
提示:
NULL
C:\WINDOWS\system32>copy c:\总销售.xls z: /y 
系统找不到指定的驱动器。
NULL
C:\WINDOWS\system32>copy c:\当日销售.xls z: /y 
系统找不到指定的驱动器。
NULLz盘明明已经映射成功了的,请问这是怎么回事?

解决方案 »

  1.   

    --先试一下!
    xp_cmdshell 局域网拷贝 
    --1.映射
    exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'/*--说明:
    z:   是映射网络路径对应本机的盘符,与下面的备份对应
    \\xz\c$   是要映射的网络路径
    xz\administrator  xz是远程的计算机名,administrator是登陆的用户名
    密码                        上面指定的administrator用户的密码
    --*/
    --2.Copy 文件
    --3.删除映射
    exec master..xp_cmdshell 'net use z: /delete'
    例如:实现将本地机的1.txt文件Copy到192.168.0.1上
    1.映射
    exec master..xp_cmdshell 'net use z: \\192.168.0.1\c$ "dfld_biedaoluan" /user:192.168.0.1\administrator' 
    2.Copy
    exec Master..xp_cmdshell 'copy c:\1.txt \\192.168.0.1\C$\'
      

  2.   

    z盘都已经映射成功了的,还有必要在语句中重新net use 吗?
      

  3.   

    总销售.xls,当日销售.xls 不再服务器的c:\
      

  4.   

    z盘,还有xls文件都是实际存在的。直接运行t.bat完全没有问题