2013-07-23 56 views
0

我没有得到成功使用此命令命令“EXEC master..xp_cmdshell”不创建文件

DECLARE @cmd sysname, @var sysname 
SET @var = 'Hello world' 
SET @cmd = 'echo ' + @var + ' > C:\var_out.txt' 
EXEC master..xp_cmdshell @cmd 

已经尝试过了几个例子,但没有奏效。 该命令运行但文件根本不会创建

+0

执行这个脚本你在找你的机器上或者在SQL框中的文件吗? –

+0

用于xp_cmdshell的帐户(通常是SQL Server服务帐户)是否有权写入该帐户?我猜不是。 – jpw

+0

你期望这个文件可以创建在哪里?它将在SQL SERVER本地驱动器c:\上创建,而不是在客户端PC上。 – valex

回答

1

您的SQL Server在哪个帐户下运行?也许它没有足够的权限。如果这是真的,则可以改为使用sp_xp_cmdshell_proxy_account。

但是,我相信你正试图找到你的机器上的文件而不是服务器。而你正在做的是将文件存储到服务器。尝试在本地SQL Server上执行此操作。

+0

这是一个测试,sql是本地的 – msantiago

+0

你在虚拟机上运行它吗?也许链接服务器?你可以检查以下TSQL命令的输出:'EXEC master..xp_cmdshell'hostname''和'EXEC master..xp_cmdshell'dir c:\'' – OzrenTkalcecKrznaric

-1

你必须之前启用一些设置与sp_xp_cmdshell

USE [master] 
GO 

sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE WITH OVERRIDE; 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1; 
GO 
RECONFIGURE WITH OVERRIDE; 
GO 

+0

呃......什么?什么设置?另请参阅格式化提示。 – bjb568