使用脚本自动压缩指定目标下的所有文件的代码

为了解决这类问题,我使用Visual Basic Scripting设计了一个脚本,可以自动达到这个目标。在本脚本中,自动压缩所有文件。为了避免将脚本自己也压缩进去,使用了一些判断。


代码如下:

call main()
Sub main()
Dim fs '文件系统。
Dim f 'folder
Dim fc 'files
Dim s 'string
Dim ws 'SHELL。
Dim subfs
Dim fi
'创建SHELL。
Set ws = CreateObject("WScript.Shell")
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(ws.currentdirectory)
Handle_files(ws.currentdirectory)
Set subfs = f.SubFolders
'遍历每个子目录。
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
Sub ListSub(filename)
On Error Resume Next
Dim subfs '子目录。
'首先处理当前目录。
Handle_Files(filename)
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filename)
Set subfs = f.SubFolders
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
'处理每个目录下的文件。
Sub Handle_Files(foldername)
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(foldername)
Set fc = f.Files
'创建SHELL。
Set ws = CreateObject("WScript.Shell")
'遍历文件对象。
For Each fl In fc
if ((instr(fl.Name,"vbs") = 0) and (instr(fl.Name,"rar") = 0)) then
'进行压缩。
s = "winrar M -ep " & fl.Path & ".rar " & fl.Path
ws.Run s, 0, True
End If
Next
End Sub
sub output(string)
wscript.echo string
end sub

一种更加巧妙的方法
对上个脚本稍加改动,使用正则表达式(Regular Expression ),可以方便我们的判断过程。修改后的脚本程序如下所示。注意我们这里排除的是不压缩的文件类型。


代码如下:

call main()
Sub main()
Dim fs '文件系统。
Dim f 'folder
Dim fc 'files
Dim s 'string
Dim ws 'SHELL。
Dim subfs
Dim fi
'创建SHELL。
Set ws = CreateObject("WScript.Shell")
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(ws.currentdirectory)
Handle_files(ws.currentdirectory)
Set subfs = f.SubFolders
'遍历每个子目录。
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
Sub ListSub(filename)
On Error Resume Next
Dim subfs '子目录。
'首先处理当前目录。
Handle_Files(filename)
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filename)
Set subfs = f.SubFolders
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
'处理每个目录下的文件。
Sub Handle_Files(foldername)
'创建文件对象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(foldername)
Set fc = f.Files
'创建SHELL。
Set ws = CreateObject("WScript.Shell")
'遍历文件对象。
For Each fl In fc
if ( RegExpTest(".vbs|.rar|.zip",fl.name) = false) then
'进行压缩。
s = "winrar M -ep " & fl.Path & ".rar " & fl.Path
output s
ws.Run s, 0, True
End If
Next
End Sub
sub output(string)
wscript.echo string
end sub
'使用正则表达式进行判断。
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' Create variable.
Set regEx = New RegExp ' Create regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = False ' Set case sensitivity.
retVal = regEx.Test(strng) ' Execute the search test.
If retVal Then
RegExpTest = true
Else
RegExpTest = false
End If
End Function

(0)

相关推荐

  • 使用脚本自动压缩指定目标下的所有文件的代码

    为了解决这类问题,我使用Visual Basic Scripting设计了一个脚本,可以自动达到这个目标.在本脚本中,自动压缩所有文件.为了避免将脚本自己也压缩进去,使用了一些判断. 复制代码 代码如下: call main() Sub main() Dim fs '文件系统. Dim f 'folder Dim fc 'files Dim s 'string Dim ws 'SHELL. Dim subfs Dim fi '创建SHELL. Set ws = CreateObject("WSc

  • python在指定目录下查找gif文件的方法

    本文实例讲述了python在指定目录下查找gif文件的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # Use the standard find method to look for GIF files. import sys, find if len(sys.argv) > 1: dirs = sys.argv[1:] else: dirs = [ '.' ] # Go for it. for dir in dirs: files = find.find

  • java删除指定目录下所有空文件夹的方法

    本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 删除指定目录下的所有空文件夹 * * @author zdw * */ public class FileUtils { List<File> list = new ArrayList<File>();

  • C++获取指定目录下的所有文件

    本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector> #include <fstream> 函数实现 void getAllFiles(string path, vector<string>& files) { // 文件句柄 long h

  • Java 读取类路径下的资源文件实现代码

    Java 读取类路径下的资源文件实现代码 一.工具类代码ResourceLoadUtil.java import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; public class ResourceLoadUtil { /** * @par

  • PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

    如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了. 输出效果: 实现代码: 复制代码 代码如下: <?php $dir = "D:/";  //要获取的目录 echo "********** 获取目录下所有文件和文件夹 ***********<hr/>"; //先判断指定的路径是不是一个文件夹 if (is_dir($dir)){  if ($dh = opendir($dir)){   whi

  • php列出一个目录下的所有文件的代码

    复制代码 代码如下: <?php function dir_path($path) { $path = str_replace('\\', '/', $path); if (substr($path, -1) != '/') $path = $path . '/'; return $path; } /** * 列出目录下的所有文件 * * @param str $path 目录 * @param str $exts 后缀 * @param array $list 路径数组 * @return a

  • java读取某个文件夹下的所有文件实例代码

    java读取某个文件夹下的所有文件          学习java基础知识,读取文件,读取某个文件夹,需要读取所有文件,如何实现呢,看下实例代码. 实例代码: import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class ReadFile { public ReadFile() { } /** * 读取某个文件夹下的所有文件 */ public static

  • Python读取文件夹下的所有文件实例代码

    Python读取文件夹下的所有文件 os.listdir(path)是得到在path路径下所以文件的名称列表. open(path)是打开某个文件. iter是python的迭代器. 所以读取某文件夹下的所有文件如下: import os path = "D:/Python34/news" #文件夹目录 files= os.listdir(path) #得到文件夹下的所有文件名称 s = [] for file in files: #遍历文件夹 if not os.path.isdir

  • Shell脚本自动删除指定大小以上的备份文件

    最近本地虚拟机的空间老是被备份给占满,为了偷懒不想自己天天登录上去清除,才写了这个自动清理脚本. 系统:centos 5.x 脚本内容: cat make_room.sh 复制代码 代码如下: #!/bin/bash #size=`df -hP|grep /dev/mapper/VolGroup00-LogVol00|awk '{print $4}'|cut -f 1 -d "G"` size=`df -mP|grep /dev/mapper/VolGroup00-LogVol00|a

随机推荐