0

xp_cmdshell を使用して「copy-item」コマンドを送信し、sproc で以前に暗号化したアイテムを移動しようとしています。sproc で、スケジュールされたタスクとして実行される .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

Found an answer, in 2 parts.

First, I was using copy-item (which is really powershell, not cmdshell).

Second, I was able to add the copy line into my .bat file, by adding START /wait to the previous line so that my copy line didn't execute until the previous command completed.

于 2013-08-01T15:59:12.713 に答える