Obtenha resultados de XP_CMDSHELL

Estive pesquisando na web alguns e parece que a única maneira de obter os resultados do XP_CMDSHELL é armazená-los em uma tabela temporária. Não existe realmente uma maneira mais fácil?

Da troca de especialistas:

Não, o xp_cmdshell não retornará nenhuma informação do exe. e você precisará usar a seguinte sintaxe se não estiver no banco de dados mestre para executá-lo. master..xp_cmdshell. Você terá que conceder ao seu usuário permissão para executar este procedimento no banco de dados mestre. Você precisará que seu exe insira as informações por si próprio, porque não pode retornar informações ao processo que a chamo

E..

Enquanto o @result obtém apenas o valor de retorno de xp_cmdshell, você pode capturar os resultados do comando inserindo diretamente em uma tabela ... algo como isto:

ymmv ...

set nocount on
declare  @filepath   varchar(255),
         @cmd        varchar(255),
         @rc         int

select   @filepath = 'c:\temp\'         
select   @cmd      = 'dir ' + @filepath + '~*.tmp'

create table #output (output varchar(255) null)
insert #output exec @rc = master..xp_cmdshell @cmd
select * from #output where output is not null
drop table #output

questionAnswers(4)

yourAnswerToTheQuestion