May 30, 2008 at 9:14 am
Good morning Michael,
I've been on Vacation.
Your solution is very interesting! Never thought of using
RunCmd """for /f ""tokens=* delims=s"" %f in ('dir /ad " & driveLetr & ":\') do @""sqlcmd.exe"" -S DBHostName -Q ""set nocount on; insert into dbatools.dbo.diskfreeimport values('%f');"""""
Do you think this could be expanded to also return total space??
June 24, 2008 at 11:07 am
Pradeep, Does this help you?
declare @cmd varchar(2000)
declare @Name varchar(100)
declare @reterror int
Set @Name = 'Pradeep.vbs'
set @cmd =
'bcp "Select ''First Line Here'' Union All '
+ 'Select ''Second Line Here'' Union All '
+ 'Select ''ABC'' Union All '
+ 'Select ''123'''
+' " queryout C:\' + @name +' -b5000 -c -t"" -T'
print @cmd
--Select len(@cmd)
--execute @RETERROR = master..xp_cmdshell @cmd
If @RETERROR <> 0
Begin
--You know the rest here
Select getdate()
End
Don't forget to uncomment the Execute.
June 24, 2008 at 4:21 pm
Grasshopper,
Sorry for the delayed response, I have been busy with a "not" vacation (swamped at work). I tried a few methods and the only way I could determine total space in DOS was to use chkdsk c: /c /i, but this is a very slow and disk-intensive process just to get free space... diskpart would work if it did not require a temporary file for scripting input -- why couldn't they just make it accept the script on the command line, like ntdsutil or iisutil?
Anyway, the answer is yes it can be done, but with a lot of slow, heavy drive activity. We're back to ActiveX scripting of WMI to efficiently get total space.
Viewing 3 posts - 16 through 17 (of 17 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy