declare @path varchar(200)
select @path = filename from master.dbo.sysfiles
set @path = ltrim(REVERSE(@path))
set @path = REVERSE(substring(@path,CHARINDEX('\',@path),len(@path)))
print @path
select @path = filename from master.dbo.sysfiles
set @path = ltrim(REVERSE(@path))
set @path = REVERSE(substring(@path,CHARINDEX('\',@path),len(@path)))
print @path
declare @path varchar(200)
select @path = filename from master.dbo.sysfiles
set @path = ltrim(REVERSE(@path))
set @path = REVERSE(substring(@path,CHARINDEX('\',@path),len(@path)))
set @path=@path+'文件名.bak'backup database 你的库 to disk=@path with init
那么退而求其次:能否得到指定文件夹(如:MSSQL\BACKUP\)中的所有文件名称呢?
--显示磁盘信息,得到服务器上的磁盘分区列表
exec master..xp_fixeddrives
--得到服务器指定目录下的目录及文件更表
exec master..xp_dirtree 'c:\',0,1 --参数:目录名,目录深度,是否显示文件--检查指定文件是否存在
exec master..xp_fileexist 'c:\boot.ini'--显示文件详细信息
exec master..xp_getfiledetails 'c:\boot.inia'
我再增加二个:
xp_subdirs 'c:\ 相当于xp_dirtree 'c:\',1
如果需要执行命令可以使用类似 xp_cmdshell 'attrib -s -h -r c:\boot.ini'的命令
另外我发现利用存储过程xp_cmdshell调度dos命令可以干很多事情(包括本贴的问题)。例如:
xp_cmdshell 'dir c:' --显示文件与目录信息
xp_cmdshell 'copy c:\a.bak \\remote\backup\' --拷贝文件再次谢谢大家!立刻结贴派分。