以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用DOS命令来解压缩文件的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90721)

--  作者:L88919138
--  发布时间:2016/9/20 15:59:00
--  用DOS命令来解压缩文件的代码

求教各位大师:想用DOS命令来解压缩文件,将DOS命令写入诸如下面语句,并用Process用于执行外部程序。

 

FileSys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)


--  作者:狐狸爸爸
--  发布时间:2016/9/20 16:07:00
--  
换个思路,将你的dos命令做成批处理,在foxtabe运行这个WriteAllText,并运行批处理文件
--  作者:狐狸爸爸
--  发布时间:2016/9/20 16:13:00
--  

另:

 

http://www.foxtable.com/webhelp/scr/2075.htm

 


--  作者:L88919138
--  发布时间:2016/9/20 16:21:00
--  

Dim upathPub As String
If FileSys.FileExists(ProjectPath & "狐表实验.FOXDB.BAK") = True Then
    Return Nothing
Else
    upathPub = ProjectPath.SubString(0,ProjectPath.length-8)
End If
Dim s As String = upathPub & "\\鲜迪狐表.bat"
Dim s1 As String = ProjectPath & "\\附件\\Foxtable.IO.zip"
Dim s2 As String = ProjectPath & "\\附件\\Foxtable.Io.dll"
If FileSys.FileExists(s) Then
    FileSys.DeleteFile(s)
End If
Dim DR As String = upathPub & "\\Foxtable.Io.dll"

FileSys.WriteAllText(s,"@echo off" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"@title 正在关闭狐表项目..." & vbcrlf,True,Encoding.Default)
\'FileSys.WriteAllText(s,"taskkill /f /im foxtable.exe" & vbcrlf,True,Encoding.Default)
\'FileSys.WriteAllText(s,"taskkill /f /im 鲜迪外网.exe" & vbcrlf,True,Encoding.Default)
\'FileSys.WriteAllText(s,"taskkill /f /im 鲜迪狐表.exe" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) \'清除屏幕.清除删除 foxtable.exe 进程后屏幕反馈的信息.
FileSys.WriteAllText(s,"echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"Delay.vbs 3" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)


FileSys.WriteAllText(s,"Winrar x " & S1 & " " & "-y" & vbcrlf,True,Encoding.Default) \'解压缩文件

FileSys.WriteAllText(s,"del /q /f " & DR & vbcrlf,True,Encoding.Default) \'删除文件
\'FileSys.WriteAllText(s,"copy /D /y " & S2 & " " & dr & vbcrlf,True,Encoding.Default) \'复制文件
\'FileSys.WriteAllText(s,"del /q /f " & s2 & vbcrlf,True,Encoding.Default) \'删除文件
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) \'清除屏幕反馈的信息.

Dim Proc As New Process \'定义一个新的Process
Proc.File = s \'指定要打开的文件
Proc.Verb = "Open" \'指定动作
Proc.Start()
proc.WaitForExit

 

 

 

老大:上述代码是想在发布项目万一无法启动时,将附件中Foxtable.IO.zip压缩文件先解压后,覆盖项目中的Foxtable.Io.dll文件(经实验这样以后可以正常启动项目),保证项目正常运行。想把这些命令生成“鲜迪狐表.bat”文件,万一项目无法启动后点击“鲜迪狐表.bat”文件让项目恢复启动,现在卡壳在解压缩文件的语句里。

ZipFile命令已经试过,发现真发生项目无法启动时这命令不顶用(当然本人水平有限是主要原因)


--  作者:狐狸爸爸
--  发布时间:2016/9/20 16:29:00
--  

用dos解压,我也不会,你找资料自己摸索一下吧,有结果记得来分享一下

 

图片点击可在新窗口打开查看


--  作者:L88919138
--  发布时间:2016/9/20 16:34:00
--  
我这两天都在找dos解压,就是没什么结果才到论坛上找大师们帮忙,看来还得慢慢摸索图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2016/9/20 16:44:00
--  
干嘛要压缩和解压缩,dll另外放一个目录,直接拷贝覆盖不行么
--  作者:L88919138
--  发布时间:2016/9/24 13:37:00
--  
最后把发布项目里的Foxtable.Io.dll文件属性设置为只读文件,轻松解决问题,不必再苦恼代码怎么写。