0

我正在尝试使用 xp_cmdshell 发送“copy-item”命令来移动我之前在存储过程中加密的项目。在存储过程中,我创建了一个 .bat 文件,作为计划任务执行,以进行加密。

我尝试使用相同的方法来执行 copy-item 命令,以及基本的 EXEC xp_cmdshell 命令,但两者都不起作用。知道为什么它可以执行 gpg,但当我尝试执行 copy-item 命令时却不行?

这是我尝试过的:

set @cmd = 'copy-file c:\MissionControlDocs\'+@docFolder+@rawfilenamewoext+'.txt.gpg y:\aep-ohio>> ' + @batchFileName)
exec master..xp_cmdshell @cmd, no_output

并将命令选择到批处理文件中,然后调用任务(在服务器上成功运行):

select @cmd = rtrim('echo copy-file c:\MissionControlDocs\'+@docFolder+@rawfilenamewoext+'.txt.gpg y:\aep-ohio>> ' + @batchFileName)
exec master..xp_cmdshell @cmd, no_output       

当我直接在服务器上的 powershell 应用程序中运行复制文件时,无论我当前在哪个目录中,复制文件都有效。

非常感谢您的想法。

4

1 回答 1

0

找到答案,分两部分。

首先,我使用的是 copy-item(它实际上是 powershell,而不是 cmdshell)。

其次,我能够将复制行添加到我的 .bat 文件中,方法是将 START /wait 添加到上一行,这样我的复制行直到上一个命令完成后才会执行。

于 2013-08-01T15:59:12.713 回答