求一段ASP代码

zx_001 2011-04-15 10:44:37
本人不懂ASP,请高手帮忙写一个页面
功能:
 扫描同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是目录下只留压缩包里的东西
 注:如果不能完成解压,可以调用DLL类进行解压,
...全文
212 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx_001 2011-04-18
  • 打赏
  • 举报
回复
这个问题解决了,我可以再加分
zx_001 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sxldfang 的回复:]

根据你的目录结构,程序进行简单修改就行啦!结贴吧!
[/Quote]

可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限
zx_001 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 theforever 的回复:]

楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。
[/Quote]

我通过FTP向这个文件夹传送一个压缩包,但是需要传送完成后进行解压,
我就是用户访问我的网站,点击下载文件,而文件不是下载到本地,是下载到用户指定的FTP空间,下载的是压缩包,我想在传送完压缩包之后,直接解压, 我就想传送完成后调用用户FTP空间下的asp程序进行解压,然后删除压缩包,当然肯定在IIS下新建网站的目录指定到FTP的
zx_001 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 sxldfang 的回复:]
引用 21 楼 zx_001 的回复:
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限


用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。
[/Quote]

不让加分了,"该帖已达到分数最大值,不允许加分操作。"

多谢你了
sxldfang 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zx_001 的回复:]
引用 18 楼 sxldfang 的回复:

根据你的目录结构,程序进行简单修改就行啦!结贴吧!


可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限
[/Quote]

用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。
  • 打赏
  • 举报
回复
楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。
sxldfang 2011-04-17
  • 打赏
  • 举报
回复
根据你的目录结构,程序进行简单修改就行啦!结贴吧!
sxldfang 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zx_001 的回复:]
可不可以自动检测本目录下是否有压缩文件[/Quote]

不就是这样自动检测的吗?
zx_001 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sxldfang 的回复:]
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……
[/Quote]

可不可以自动检测本目录下是否有压缩文件
zx_001 2011-04-16
  • 打赏
  • 举报
回复
现在可以了,
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的

还有必需要有Everyone权限吗? 其它的可不可以
zx_001 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hongmei85 的回复:]

386kb的那个Rar.exe
[/Quote]
我试过了,不行啊,
Rar=E:\发布\dfdsf\A301-jiaoyu.Rar
Error

dfdsf目录下文件
A301-jiaoyu.Rar
dsfds.asp
Rar.exe
hongmei85 2011-04-16
  • 打赏
  • 举报
回复
386kb的那个Rar.exe
zx_001 2011-04-16
  • 打赏
  • 举报
回复

我应该复制哪个rar.exe
zx_001 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sxldfang 的回复:]
通过测试,功能强大,小心使用!

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压……
[/Quote]

非常感谢,还有一些问题,
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
zx_001 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sxldfang 的回复:]

可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:

VBScript code

<%

Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso……
[/Quote]

能不能根据我上面的需求帮我写一个页面,十分感谢,我对asp一点不懂,你给的代码我也看不懂
sxldfang 2011-04-15
  • 打赏
  • 举报
回复
可以先删除原来的所有文件及子目录中的文件,然后再解压。

删除各目录下的文件可用:


<%

Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fso.DeleteFile Path & "\" & f.Name
next
Set fs=fd.SubFolders
For each f in fs
CheckHackerFiles Path & "\" & f.Name
next
End Sub
%>
sxldfang 2011-04-15
  • 打赏
  • 举报
回复
从程序中摘出来的一小段程序,希望对你有所帮助:


<%

Set Shell = Server.CreateObject("WScript.Shell")'存放解压文件的目录需要Everyone写的权限
p=server.Mappath("rar") '解压程序的存放位置
cmd="" 'p & "\cmd.exe /c " '不需要cmd.exe文件
rar=p & "\rar.exe x -o+ " '用于解压缩的程序
command= cmd & rar & SaveFile & " " & SavePath & "\" & iif(zz<10,"0","") & zz ' rar.exe x -t -o+ -p- iis.rar c:\ok
'response.write command & "<br>"
'D:\www\dw\rar\rar.exe x -o+ d:\ftp\dw\0933101\00\0301EF69B4346C06AD51D192E6F5C91043.rar d:\ftp\dw\0933101\00\03

RetCode = Shell.Run(command,1, True)
if RetCode=0 then
CheckHackerFiles SavePath & "\" & iif(zz<10,"0","") & zz ' d:\ftp\dw\0933101\00\03
Response.write "<center><br><br>文件 <span style=""color:red;"">" & FileName_j & " </span>上传成功!<br></center>"
else
Response.write "<center><br><br><span style=""color:red;""> 文件 </span>" & FileName_j & "<span style=""color:red;""> 格式不正确!</span></center>"
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩文件
fso.DeleteFile SaveFile
set fso=Nothing
end if

%>
ifengshow 2011-04-15
  • 打赏
  • 举报
回复
这个asp木马有这个功能,你可以看看再修改下代码
sxldfang 2011-04-15
  • 打赏
  • 举报
回复

通过测试,功能强大,小心使用

请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意

说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压成功,原压缩包会被删除,否则不会删除
4、压缩包中可以含子目录,解压时一并还原
5、若没有压缩包,则相当于删除目录中清单前两项之外的所有内容


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<%
dim pName, pPath, rarFile '本文件名,本文件的路径,压缩包名
pName= request.ServerVariables("SCRIPT_NAME") '/vote/cs/jy.asp
pName=Ucase(mid(pName,instrrev(pName,"/")+1)) 'JY.ASP
pPath=Server.MapPath(".") 'E:\www\vote\cs
rarFile=""
delAllFile pPath
if rarFile<>"" then '存在压缩包
response.Write("Rar=" & rarFile & "<br>")
if unRar then
response.Write("Success!")
else
response.Write("Error!")
end if
else
response.Write("No find RAR file")
end if

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub delAllFile(Path)
dim fso,fd,fs,fn,f
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fn=UCase(f.Name)
if Path=pPath and (fn=pName or fn="RAR.EXE" or right(fn,4)=".RAR" ) then
' 不能删除:1、本程序 2、压缩包 3、解压程序
if right(fn,4)=".RAR" then rarFile= Path & "\" & f.Name
else
fso.DeleteFile Path & "\" & f.Name
end if
next
Set fs=fd.SubFolders
For each f in fs
delAllFile Path & "\" & f.Name
next
if Path<>pPath then
fd.Delete
end if
set fs=Nothing
set fd=Nothing
set fso=Nothing
End Sub

Function unRar()
dim Shell, cmd, fso
Set Shell = Server.CreateObject("WScript.Shell") '存放解压文件的目录需要Everyone写的权限
cmd=server.Mappath("rar.exe") & " x -o+ " & rarFile & " " & Server.MapPath(".")
unRar = ( Shell.Run(cmd,1, True) = 0 )
if unRar then '若解压成功
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩包文件
fso.DeleteFile rarFile
set fso=Nothing
end if
Set Shell=Nothing
End Function


%>

</body>
</html>



xyz98765 2011-04-15
  • 打赏
  • 举报
回复
请高手也关注一下我的问题 感谢

http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638
加载更多回复(2)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧