结果数据库的异地备份批处理,作业调度成功了。但是程序备份的批处理,不成功啊。手工双击这个批处理文件,是可以执行成功的,批处理文件本身没有问题。
作业的脚本如下:
EXECUTE master..xp_cmdshell 'd:\备份\progbak.bat'
看作业的日志,执行成功的,并没有错误提示,但是就是没有copy过去的。
.bat里面的内容如下:
d:\备份\文件1_BussAndClient.lnk
d:\备份\文件2_BussAndClient.lnk
d:\备份\文件3_BussAndClient.lnk
d:\备份\文件4_BussAndClient.lnk
即使在作业中我这样写:
EXECUTE master..xp_cmdshell 'd:\备份\文件1_BussAndClient.lnk'
也是无法执行压缩远程备份的。
谢谢大家,请求大家的帮助,不知道这个是什么原因。同样类似的写法,数据库的异地备份就是可以的。
13 个解决方案
#1
EXECUTE master..xp_cmdshell 'copy d:\备份\progbak.bat'
#2
怎么是个快捷方式
#3
to: zy112429
谢谢您。我试验了加了copy还是不行。发现这个.bat 复制到了本机的 C:\WINDOWS\system32 目录了。文件本身没有执行。
to: hexl0325
您好。那个快捷方式,是用压缩软件生成的,可以压缩文件到异地服务器上的某个目录,并且在后面加上时间戳。 快捷方式,是可以正常执行的。
谢谢您。我试验了加了copy还是不行。发现这个.bat 复制到了本机的 C:\WINDOWS\system32 目录了。文件本身没有执行。
to: hexl0325
您好。那个快捷方式,是用压缩软件生成的,可以压缩文件到异地服务器上的某个目录,并且在后面加上时间戳。 快捷方式,是可以正常执行的。
#4
数据库备份那个批处理成功了,是有个区别,就是 里面用 xcopy 从一个机器目录复制到另外一个机器。
而程序备份不是用copy来执行的。是这个压缩文件,可以实现压缩并且copy到指定的服务器,是在建立压缩文件的时候设置好的远程服务器的路径密码等。所以,只要这个快捷方式执行就行了。
而程序备份不是用copy来执行的。是这个压缩文件,可以实现压缩并且copy到指定的服务器,是在建立压缩文件的时候设置好的远程服务器的路径密码等。所以,只要这个快捷方式执行就行了。
#5
EXECUTE master..xp_cmdshell 'd:\备份\文件1_BussAndClient.lnk'
在ssms中直接执行这个看看输出什么错?
是不是xp_cmdshell 没有打开 ?
在ssms中直接执行这个看看输出什么错?
是不是xp_cmdshell 没有打开 ?
#6
to: sekai2011
谢谢您
我在查询分析器中 执行,并没有报错,output为null ,消息中显示,所影响行数为1.但是检查异地服务器文件夹,并没有压缩过去。
通过作业调度,也是不报错。
xp_cmdshell 应该是打开了,因为另外一个批处理是成功的。同样是到另外一个机器。
谢谢您
我在查询分析器中 执行,并没有报错,output为null ,消息中显示,所影响行数为1.但是检查异地服务器文件夹,并没有压缩过去。
通过作业调度,也是不报错。
xp_cmdshell 应该是打开了,因为另外一个批处理是成功的。同样是到另外一个机器。
#7
你要模拟双击的动作啊 不然你把'd:\备份\文件1_BussAndClient.lnk'
放到cmd中 你看看能否执行
放到cmd中 你看看能否执行
#8
to: tcjacky
您好。谢谢您。
不知道如何模拟双机的动作。
我曾经这样写过
master..xp_cmdshell 'cmd/c d:\备份\文件1_BussAndClient.lnk'
也不执行的。
我尝试过,直接在dos粘帖这个命令(d:\备份\文件1_BussAndClient.lnk),回车,是可以执行的 。备份成功。
您好。谢谢您。
不知道如何模拟双机的动作。
我曾经这样写过
master..xp_cmdshell 'cmd/c d:\备份\文件1_BussAndClient.lnk'
也不执行的。
我尝试过,直接在dos粘帖这个命令(d:\备份\文件1_BussAndClient.lnk),回车,是可以执行的 。备份成功。
#9
换个方式,在c盘建一个abc.txt,直接
EXECUTE master..xp_cmdshell 'c:\abc.txt'
看能否执行,如果能执行,在c盘上建这个文件的批处理: c:\abc.bat,里面也就是上面这句,
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.bat'
看能否执行.
如能,再把这个批处理建一个快捷方式,直接拉的话,文件名应为: abc.bat.lnk
因为你的快捷方式没有扩展名,把它更名为 abc.lnk
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.lnk'
看是否能执行.
找到错的那步,再看是什么问题.
EXECUTE master..xp_cmdshell 'c:\abc.txt'
看能否执行,如果能执行,在c盘上建这个文件的批处理: c:\abc.bat,里面也就是上面这句,
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.bat'
看能否执行.
如能,再把这个批处理建一个快捷方式,直接拉的话,文件名应为: abc.bat.lnk
因为你的快捷方式没有扩展名,把它更名为 abc.lnk
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.lnk'
看是否能执行.
找到错的那步,再看是什么问题.
#10
c:\abc.bat
的内容应为
c:\abc.txt
的内容应为
c:\abc.txt
#11
to: qianjin036a
谢谢您。
执行到第一步就不执行了
EXECUTE master..xp_cmdshell 'c:\abc.txt'
就是这句话。在查询分析器中,执行,提示‘正在执行批查询...’.
txt里面的内容为空,处于等待状态。里面有内容 ‘d:\备份\文件1_BussAndClient.lnk'
也是处于等待。。。 后来就强制终止了。
---------------
第二步,建立了.bat。内容是abc.txt执行。输出如下的错误。
NULL
C:\WINDOWS\system32>abc.txt
'abc.txt' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NULL
谢谢您。
执行到第一步就不执行了
EXECUTE master..xp_cmdshell 'c:\abc.txt'
就是这句话。在查询分析器中,执行,提示‘正在执行批查询...’.
txt里面的内容为空,处于等待状态。里面有内容 ‘d:\备份\文件1_BussAndClient.lnk'
也是处于等待。。。 后来就强制终止了。
---------------
第二步,建立了.bat。内容是abc.txt执行。输出如下的错误。
NULL
C:\WINDOWS\system32>abc.txt
'abc.txt' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NULL
#12
xp_cmdshell是没有问题的。如果你是用CMD命令进行备份,那就应该用copy。如果你是通过其它软件备份,那你就应该先执行其它软件。
#13
感激大家的帮助
结贴了。
结贴了。
#1
EXECUTE master..xp_cmdshell 'copy d:\备份\progbak.bat'
#2
怎么是个快捷方式
#3
to: zy112429
谢谢您。我试验了加了copy还是不行。发现这个.bat 复制到了本机的 C:\WINDOWS\system32 目录了。文件本身没有执行。
to: hexl0325
您好。那个快捷方式,是用压缩软件生成的,可以压缩文件到异地服务器上的某个目录,并且在后面加上时间戳。 快捷方式,是可以正常执行的。
谢谢您。我试验了加了copy还是不行。发现这个.bat 复制到了本机的 C:\WINDOWS\system32 目录了。文件本身没有执行。
to: hexl0325
您好。那个快捷方式,是用压缩软件生成的,可以压缩文件到异地服务器上的某个目录,并且在后面加上时间戳。 快捷方式,是可以正常执行的。
#4
数据库备份那个批处理成功了,是有个区别,就是 里面用 xcopy 从一个机器目录复制到另外一个机器。
而程序备份不是用copy来执行的。是这个压缩文件,可以实现压缩并且copy到指定的服务器,是在建立压缩文件的时候设置好的远程服务器的路径密码等。所以,只要这个快捷方式执行就行了。
而程序备份不是用copy来执行的。是这个压缩文件,可以实现压缩并且copy到指定的服务器,是在建立压缩文件的时候设置好的远程服务器的路径密码等。所以,只要这个快捷方式执行就行了。
#5
EXECUTE master..xp_cmdshell 'd:\备份\文件1_BussAndClient.lnk'
在ssms中直接执行这个看看输出什么错?
是不是xp_cmdshell 没有打开 ?
在ssms中直接执行这个看看输出什么错?
是不是xp_cmdshell 没有打开 ?
#6
to: sekai2011
谢谢您
我在查询分析器中 执行,并没有报错,output为null ,消息中显示,所影响行数为1.但是检查异地服务器文件夹,并没有压缩过去。
通过作业调度,也是不报错。
xp_cmdshell 应该是打开了,因为另外一个批处理是成功的。同样是到另外一个机器。
谢谢您
我在查询分析器中 执行,并没有报错,output为null ,消息中显示,所影响行数为1.但是检查异地服务器文件夹,并没有压缩过去。
通过作业调度,也是不报错。
xp_cmdshell 应该是打开了,因为另外一个批处理是成功的。同样是到另外一个机器。
#7
你要模拟双击的动作啊 不然你把'd:\备份\文件1_BussAndClient.lnk'
放到cmd中 你看看能否执行
放到cmd中 你看看能否执行
#8
to: tcjacky
您好。谢谢您。
不知道如何模拟双机的动作。
我曾经这样写过
master..xp_cmdshell 'cmd/c d:\备份\文件1_BussAndClient.lnk'
也不执行的。
我尝试过,直接在dos粘帖这个命令(d:\备份\文件1_BussAndClient.lnk),回车,是可以执行的 。备份成功。
您好。谢谢您。
不知道如何模拟双机的动作。
我曾经这样写过
master..xp_cmdshell 'cmd/c d:\备份\文件1_BussAndClient.lnk'
也不执行的。
我尝试过,直接在dos粘帖这个命令(d:\备份\文件1_BussAndClient.lnk),回车,是可以执行的 。备份成功。
#9
换个方式,在c盘建一个abc.txt,直接
EXECUTE master..xp_cmdshell 'c:\abc.txt'
看能否执行,如果能执行,在c盘上建这个文件的批处理: c:\abc.bat,里面也就是上面这句,
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.bat'
看能否执行.
如能,再把这个批处理建一个快捷方式,直接拉的话,文件名应为: abc.bat.lnk
因为你的快捷方式没有扩展名,把它更名为 abc.lnk
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.lnk'
看是否能执行.
找到错的那步,再看是什么问题.
EXECUTE master..xp_cmdshell 'c:\abc.txt'
看能否执行,如果能执行,在c盘上建这个文件的批处理: c:\abc.bat,里面也就是上面这句,
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.bat'
看能否执行.
如能,再把这个批处理建一个快捷方式,直接拉的话,文件名应为: abc.bat.lnk
因为你的快捷方式没有扩展名,把它更名为 abc.lnk
再执行:
EXECUTE master..xp_cmdshell 'c:\abc.lnk'
看是否能执行.
找到错的那步,再看是什么问题.
#10
c:\abc.bat
的内容应为
c:\abc.txt
的内容应为
c:\abc.txt
#11
to: qianjin036a
谢谢您。
执行到第一步就不执行了
EXECUTE master..xp_cmdshell 'c:\abc.txt'
就是这句话。在查询分析器中,执行,提示‘正在执行批查询...’.
txt里面的内容为空,处于等待状态。里面有内容 ‘d:\备份\文件1_BussAndClient.lnk'
也是处于等待。。。 后来就强制终止了。
---------------
第二步,建立了.bat。内容是abc.txt执行。输出如下的错误。
NULL
C:\WINDOWS\system32>abc.txt
'abc.txt' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NULL
谢谢您。
执行到第一步就不执行了
EXECUTE master..xp_cmdshell 'c:\abc.txt'
就是这句话。在查询分析器中,执行,提示‘正在执行批查询...’.
txt里面的内容为空,处于等待状态。里面有内容 ‘d:\备份\文件1_BussAndClient.lnk'
也是处于等待。。。 后来就强制终止了。
---------------
第二步,建立了.bat。内容是abc.txt执行。输出如下的错误。
NULL
C:\WINDOWS\system32>abc.txt
'abc.txt' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NULL
#12
xp_cmdshell是没有问题的。如果你是用CMD命令进行备份,那就应该用copy。如果你是通过其它软件备份,那你就应该先执行其它软件。
#13
感激大家的帮助
结贴了。
结贴了。