【问题标题】:copy-item using xp_cmdshell in SQL Server在 SQL Server 中使用 xp_cmdshell 复制项目
【发布时间】:2013-07-31 20:15:55
【问题描述】:

我正在尝试使用 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 应用程序中运行复制文件时,它可以工作 - 无论我当前在哪个目录中。

非常感谢您的想法。

【问题讨论】:

    标签: xp-cmdshell


    【解决方案1】:

    找到答案,分为两部分。

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

    其次,我可以将复制行添加到我的 .bat 文件中,方法是将 START /wait 添加到上一行,这样我的复制行在上一个命令完成之前不会执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多