vbscript 写入文件

I decided to write this article after I saw an interesting question here on Experts Exchange by one of our new members, asking how to delete empty folders and subfolders in a directory without any prompts.

在我的一位新成员在Experts Exchange上看到一个有趣的问题后,我决定写这篇文章,询问如何在没有任何提示的情况下删除目录中的空文件夹和子文件夹。

The script is well commented but I am going to outline the major portion of the code here.

该脚本的注释很好,但是我将在此处概述代码的主要部分。

  1. Set the “Start Folder” - this will be the folder where you want to clean up all empty folders.  My example uses "C:\temp\ee\clean"

    设置“开始文件夹”-这将是您要清理所有空文件夹的文件夹。 我的示例使用“ C:\ temp \ ee \ clean”

  2. VBScript does not have very good array support so we have to use some tricks. I will be creating a collection of found folders and saving to a text field that will get delimited with a special delimiter that will not get confused with other possible characters in a folder name.  The field "txtFolderList" will hold the text list.

    VBScript没有很好的数组支持,因此我们必须使用一些技巧。 我将创建一个找到的文件夹的集合并将其保存到一个文本字段,该文本字段将使用特殊的定界符来定界,该定界符不会与文件夹名称中的其他可能的字符混淆。 字段“ txtFolderList”将保存文本列表。

  3. Here will run a subroutine that will recursively find all subfolders in our start folder. As folders are found, the folder names will be saved in "txtFolderList"

    这里将运行一个子例程,该子例程将递归地在我们的开始文件夹中找到所有子文件夹。 找到文件夹后,文件夹名称将保存在“ txtFolderList”中

  4. Here we are creating an array from our text field.  We will use the array to loop through all the found folders.

    在这里,我们从文本字段创建一个数组。 我们将使用该数组遍历所有找到的文件夹。

  5. Finally, we call a subroutine for each folder in the array that will check if the folder is empty. If the folder is empty, it will get deleted. Note that we are starting with the last array object and going towards the first. The reason is the first folders will be filled with the last folders and will not be found as empty. By working backward, we check if the last item is empty and if it is, delete it. This allows the parent folders to be deleted if no other files are found.

    最后,我们为数组中的每个文件夹调用一个子例程,该例程将检查文件夹是否为空。 如果文件夹为空,它将被删除。 请注意,我们从最后一个数组对象开始,向第一个数组对象前进。 原因是第一个文件夹将被最后一个文件夹填充,并且不会被发现为空。 通过向后工作,我们检查最后一项是否为空,如果为空,则将其删除。 如果找不到其他文件,这将允许删除父文件夹。

The subroutines are well commented. The script will run wherever you can run VBScript (Windows). To run the script, save the file with the .vbs extension. From there you can use the command prompt or anything that can call a command line.

子例程的注释很好。 该脚本将在可以运行VBScript(Windows)的任何地方运行。 要运行脚本,请保存扩展名为.vbs的文件。 在这里,您可以使用命令提示符或任何可以调用命令行的命令。

Assuming the file is called "clean.vbs" and is found in c:\scripts\clean.vbs, you only need to enter c:\scripts\clean.vbs to the command prompt or call the line in your own code.

假设该文件名为“ clean.vbs”,并且位于c:\ scripts \ clean.vbs中,则只需在命令提示符下输入c:\ scripts \ clean.vbs或在您自己的代码中调用该行。

' *************************************
'  Author: Scott Fell
'  https://www.experts-exchange.com/members/padas.html
'  Date: January 2020
'  Original Posted: Experts-Exchange.com
'  ************************************
'  WARNING! THIS ROUTINE WILL DELETE ALL SUBFOLDERS IN THE START FOLDER IF THE FOLDER IS EMPTY
'  USE THIS CODE AT YOUR OWN RISK
'  PLEASE MAKE SURE TO TEST BEFORE USING LIVE
' *************************************
' 1) THE FOLDER TO START
startFolder = "C:\temp\ee\empty1"
' 2) VARIABLE TO HOLD ALL FOUND FOLDERS
txtFolderList = ""
' CREATE FILE SYSTEM OBJECT
Set fso = CreateObject("Scripting.FileSystemObject")
' 3) CALL SUBROUTINE THAT WILL RECURSIVELY GET ALL SUB FOLDERS
getSubfolders fso.GetFolder(startFolder)
' WHEN txtFolderList IS POPULATED
' IT WILL LOOK LIKE c:\path\folder[|]c:\path\folder[|]c:\path\folder
' 4) CREATE AN ARRAY USING splut and [|] TO SEPARATE
arrSubFolders = split(txtFolderList,"[|]")
' 5) LOOP THROUGH ARRAY BACKWARDS
' ALLOWS TO DELETE THE LAST FOLDER FIRST
intArraySize = LBound(arrSubFolders) 'array size
For x = UBound(arrSubFolders) to 0 step -1 'LOOP THROUGH FOLDERS BACKWARDS
'RUN THE CLEAN ROUTINE FOR THE CURRENT SUBFOLDER
clean arrSubFolders(x)
Next
'Wscript.Echo txtFolderList
' SUBROUTINE TO RECURSIVELY GET ALL SUB FOLDERS
Sub getSubfolders(Folder)
'LOOP THROUGH ALL SUB FOLDERS
For Each Subfolder in Folder.SubFolders
if txtFolderList = "" then 'IF THIS IS THE FIRST ENTRY
txtFolderList = Subfolder.Path 'ADD THE FIRST SUB FOLDER TO OUR txtFolderList
else
' CONTINUE TO ADD TO THE FIELD txtFolderList USING A DELIMINTER OF [|]
txtFolderList = txtFolderList &"[|]"& Subfolder.Path
end if
'CALL getSubfolders INSIDE THE LOOP TO GET MORE SUB FOLDERS
getSubfolders Subfolder
Next
End Sub
' SUB ROUTIE TO CHECK IF FOLDER IS EMPTY
' DELETE FOLDER IF IT IS EMPTY
sub clean(strFolder)
If fso.FolderExists(strFolder) Then 'MAKE SURE FOLDER EXISTS
Set objFolder = fso.GetFolder(strFolder) 'CREATE FOLDER OBJECT
' CHECK THAT FOLDER IS EMPTY (REASON WE ARE GOING BACKWARDS)
If objFolder.Files.Count = 0 And objFolder.SubFolders.Count = 0 Then
'DELETE FOLDER WHEN TRUE (EMPTY)
fso.DeleteFolder strFolder
end if
End If
end sub
set fso = nothing

翻译自: https://www.experts-exchange.com/articles/33944/Use-VBScript-to-Silently-Remove-Empty-Folders.html

vbscript 写入文件

vbscript 写入文件_使用VBScript静默删除空文件夹相关推荐

  1. python删除指定路径文件_基于python实现删除指定文件类型

    Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语 ...

  2. java 删除文件夹和文件_如何创建无法删除的文件夹?

    我们在使用电脑的时候总会碰到一些重要文件被意外删除,再看看回收站早已空空如也,让我们追悔莫及.今天管家就教给大家创建无法正常删除的文件夹,把重要文件放在里面这样我们就不会误删文件了,开始吧! 操作方法 ...

  3. 如何删除写保护的文件_如何找回已删除或永久删除的Office Excel文件

    恢复删除Excel文件概述 Microsoft Office Excel是微软(Microsoft)为Windows及macOS所设计的试算表软件.它的计算.绘图工具.枢纽分析表和一个称作VBA(Vi ...

  4. python删除空文件夹

    python删除空文件夹 import glob import osdir_=r'G:\data\result'dirs=glob.glob(dir_+'/*/*')for dir in dirs:# ...

  5. Linux中怎么删除空文件夹

    找出空文件夹:find -type d -empty 找出并删除空文件夹: find -type d -empty | xargs rm -rf

  6. 批量删除大量空目录、快速删除空文件夹

    菜鸡脚本,想看看除了awk内置语言外有没有其他方法快速删除空文件夹: 一条命令搞定,可直接看底部: 海量空目录暂时没试过,会遍历目录下的所有文件,不过要想删除某一路径下的所有空目录无可避免的要遍历所有 ...

  7. linux递归删除空文件夹,Shell脚本实现递归删除空文件夹

    有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥 # des: delete empt ...

  8. C# 删除文件和删除空文件夹

    本章讲述:删除文件和删除空文件夹 注意:删除文件和删除空文件夹的方法不一样,但是删除空文件夹的时候,需要去除文件夹自身的只读属性 文件属性设置: //文件属性设置 using System.IOFil ...

  9. 查找重复文件_快速查找、删除重复图片及文件!

    照片或者文件多了难免就会有重复,浪费硬盘空间的情况,下面让我们一起使用ACDSee 官方免费版软件删除你的重复图片及文件吧! 1. 打开软件,点击"工具"下的"查找重复项 ...

最新文章

  1. python中立方_Python编程从入门到实践 第四章练习题
  2. 解决RecyclerView在ScrollView中会置顶它上面的控件
  3. Nginx服务器的安装配置
  4. android loadlibrary 更改libPath 路径,指定路径加载.so
  5. 2020年10月Oracle安全补丁:四个远程无凭证漏洞 两个内核级别漏洞需关注
  6. java aop设计_Spring4.x基础配置(三):Spring AOP
  7. yii mysql 操作数据库_YII2中操作数据库的方式
  8. docker容器使用-图解
  9. 计算机网络rip工作原理,12. 小型网络 RIP 协议工作原理
  10. 多媒体课件利用计算机开发工具将,多媒体课件设计与制作教程PPT演示课件
  11. Vue图片、视频预览组件(vue-gallery)
  12. 怎么用虚拟机搭建云服务器,利用虚拟机搭建云服务器
  13. 综述:如何研究植物基因组DNA羟甲基化(5hmC)?|易基因
  14. repost 从APP工厂到游戏工厂?字节跳动进攻腾讯腹地
  15. ddr3写操作app_wdf_end说明
  16. # Classification: Accuracy(准确率)
  17. java计算器 控制台_java控制台实现的简单小系统,支持计算器功能,日历、乘法表算法...
  18. wps office 2010 Wps文字文档保存及自动保存方法介绍
  19. PhotoShop如何导出线性空间下的图片
  20. 史上最强C语言教程----指针(初阶)

热门文章

  1. 小程序open-data组件相关问题
  2. gene prediction commend 2
  3. js数据取整,取余,保留小数,数据脱敏等的一些处理方式
  4. linux各种挂载点作用,Linux 挂载点目录及其作用
  5. 如何使用Trello轻松管理项目
  6. 弘辽科技:淘宝开店卖化妆品怎么样?有哪些技巧?
  7. PHP自定义模式搭建环境,自定义搭建PHP开发环境
  8. C语言程序设计朱艳艳,朱艳华
  9. 清华大学计算机专业考研英语,2017年清华大学计算机系921考研经验交流
  10. day22 迈向大神 socket模块