Xcopy / VBS操作文件夹

Xcopy参数介绍
DOS批处理命令,永远是不朽的命令,不仅功能强大,同时,速度也是最快的!但是,很多新手学习计算机,
都已经遗忘了本不该忘记的批处理命令。

  我们不可数典忘祖,该学习的还是要学习,不该忘记的还是不能忘记,尤其是DOS批处理命令,
在开发软件或项目的时候,都离不开这些基本的原始的命令。本文,我们来学习Xcopy的参数及实例

  一、Xcopy参数介绍

  命令格式:XCOPY source [destination] 一堆可选的参数

  参数介绍

  source 指定要复制的文件。

  destination 指定新文件的位置和/或名称。

  /A 只复制有存档属性集的文件, 但不改变属性。

  /M 只复制有存档属性集的文件, 并关闭存档属性。

  /D:m-d-y 复制在指定日期或指定日期以后改变的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。

  /EXCLUDE:file1[+file2][+file3]...
  指定含有字符串的文件列表。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。

  例如,指定如 \obj\ 或 .obj 的字符串会排除目录 obj 下面的所有文件或带有 .obj 扩展名的文件。

  /P 创建每个目标文件前提示。

  /S 复制目录和子目录,除了空的。

  /E 复制目录和子目录,包括空的。 与 /S /E 相同。可以用来修改 /T。

  /V 验证每个新文件。

  /W 提示您在复制前按键。

  /C 即使有错误,也继续复制。

  /I 如果目标不存在,又在复制一个以上的文件, 则假定目标一定是一个目录。

  /Q 复制时不显示文件名。

  /F 复制时显示完整的源和目标文件名。

  /L 显示要复制的文件。

  /G 允许将没有经过加密的文件复制到不支持加密的目标。

  /H 也复制隐藏和系统文件。

  /R 改写只读文件。

  /T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括空目录和子目录。

  /U 只复制已经存在于目标中的文件。

  /K 复制属性。一般的 Xcopy 会重设只读属性。

  /N 用生成的短名复制。

  /O 复制文件所有权和 ACL 信息。

  /X 复制文件审核设置(隐含 /O)。

  /Y 禁止提示以确认改写一个现存目标文件。

  /-Y 导致提示以确认改写一个现存目标文件。

  /Z 用重新启动模式复制网络文件。

  二、Xcopy命令实例介绍

  ①本机复制文件或文件夹的实例

  Xcopy d:\UpdateFiles e:\123  /s /e /y

  命令解释:将D盘的UpdateFiles文件夹中包含的所有东西,全部复制到E盘的123文件夹内;/s /e /y 参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。

  ②在局域网中的应用实例

  Xcopy \\192.168.0.168\UpdateFiles e:\123  /s /e /y

  命令解释:将192.168.0.168这台计算机的名称为UpdateFiles的文件夹内的所有东西,全部复制到本机的e:\123 文件夹;参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

vbs-操作文件夹 1.更改文件夹属性

使用 FileSystemObject 检查文件夹是否隐藏,如果没有隐藏,就隐藏它

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\FSO")
If objFolder.Attributes = objFolder.Attributes AND
2 Then     objFolder.Attributes = objFolder.Attributes XOR
2 End If
2.复制指定文件
Const OverwriteExisting = TrueSet
objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\ScriptLog.txt" , "D:\Archive\", OverwriteExisting
3.复制指定文件夹 删除文件夹
Const OverWriteFiles = TrueSet
objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "C:\Scripts" , "C:\FSO" , OverWriteFilesobjFSO.deletefolder "D:\World of Warcraft\Interface"
4.复制指定文件夹内所有同一格式的文件
Const OverwriteExisting = TrueSet
objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\*.txt" , "D:\Archive\" , OverwriteExisting
5.使用 Shell 复制文件夹
Const FOF_CREATEPROGRESSDLG = &H0&ParentFolder = "D:\Archive" Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere "C:\Scripts", FOF_CREATEPROGRESSDLG
6.使用 WMI 复制文件夹
strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery( _     "Select * from Win32_Directory where Name = 'c:\\Scripts'")
For Each objFolder in colFolders     errResults   = objFolder.Copy("D:\Archive")     Wscript.Echo errResultsNext
7.创建文件夹
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("C:\FSO")
8.创建和命名文本文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = "C:\FSO"strFileName = objFSO.GetTempNamestrFullName = objFSO.BuildPath(strPath, strFileName)
Set objFile = objFSO.CreateTextFile(strFullName)objFile.CloseobjFSO.DeleteFile(strFullName)
9.创建网络共享
Const FILE_SHARE = 0Const MAXIMUM_CONNECTIONS = 25strComputer = "."
Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set objNewShare = objWMIService.Get("Win32_Share")errReturn = objNewShare.Create _     ("C:\Finance", "FinanceShare", FILE_SHARE, _         MAXIMUM_CONNECTIONS, "Public share for the Finance group.")Wscript.Echo errReturn
1.检测指定文件夹中的所有文件

strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService. _     ExecQuery("Select * from CIM_DataFile where Path = '\\Scripts\\'")For Each objFile in colFiles     Wscript.Echo objFile.Name Next2.检测计算机上的所有文件夹strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colFolders = objWMIService.ExecQuery("Select * from Win32_Directory")For Each objFolder in colFolders     Wscript.Echo objFolder.NameNext 3.检测网络共享strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")For each objShare in colShares     Wscript.Echo "AllowMaximum: " & vbTab &   objShare.AllowMaximum         Wscript.Echo "Caption: " & vbTab &   objShare.Caption         Wscript.Echo "MaximumAllowed: " & vbTab &   objShare.MaximumAllowed     Wscript.Echo "Name: " & vbTab &   objShare.Name         Wscript.Echo "Path: " & vbTab &   objShare.Path         Wscript.Echo "Type: " & vbTab &   objShare.Type    Next 4.检测已发布共享 Const ADS_SCOPE_SUBTREE = 2Set objConnection = CreateObject("ADODB.Connection")Set objCommand =    CreateObject("ADODB.Command")objConnection.Provider = "ADsDSOObject"objConnection.Open "Active Directory Provider"Set objCOmmand.ActiveConnection = objConnectionobjCommand.CommandText = "Select Name, unCName, ManagedBy from " _     & "'LDAP://DC=Fabrikam,DC=com' where objectClass='volume'"objCommand.Properties("Timeout") = 30 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.Properties("Cache Results") = False Set objRecordSet = objCommand.ExecuteobjRecordSet.MoveFirstDo Until objRecordSet.EOF     Wscript.Echo "Share Name: " & objRecordSet.Fields("Name").Value     Wscript.Echo "UNC Name: " & objRecordSet.Fields("uNCName").Value     Wscript.Echo "Managed By: " & objRecordSet.Fields("ManagedBy").Value     objRecordSet.MoveNextLoop5.移动文件Set objFSO = CreateObject("Scripting.FileSystemObject")objFSO.MoveFile "C:\FSO\ScriptLog.log" , "D:\Archive" 也可以这样 strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colFiles = objWMIService. _     ExecQuery("Select * from CIM_DataFile where Extension = 'wma'")For Each objFile in colFiles     strCopy = "C:\Media Archive\" & objFile.FileName _         & "." & objFile.Extension     objFile.Copy(strCopy)     objFile.DeleteNext6.移动文件夹
Set objFSO = CreateObject("Scripting.FileSystemObject")objFSO.MoveFolder "C:\Scripts" ,


7.移动指定文件夹内所有文件

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "C:\FSO\*.txt" , "D:\Archive\"
8.重命名文件Set objFSO = CreateObject("Scripting.FileSystemObject")objFSO.MoveFile "C:\FSO\ScriptLog.txt" , "C:\FSO\BackupLog.txt"
9.重命名文件夹Set objFSO = CreateObject("Scripting.FileSystemObject")objFSO.MoveFolder "C:\FSO\Samples" , "C:\FSO\Scripts"
10.重命名多个文件strComputer = "."Set objWMIService = GetObject _     ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _     ("Select * from Cim_Datafile where Name = " _         & "'c:\\scripts\\toggle_service.vbs'")
For Each objFile in colFiles     errResult = objFile.Rename("c:\scripts\toggle_service.old")     Wscript.Echo errResultNext
11.重命名多个文件夹
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _     ("Select * from Win32_Directory where name = 'c:\\Scripts'")
For Each objFolder in colFolders     errResults = objFolder.Rename("C:\Script Repository")     Wscript.Echo errResultsNext
12.压缩文件夹
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _     ("Select * from Win32_Directory where name = 'c:\\Scripts'")
For Each objFolder in colFolders     errResults = objFolder.Compress     Wscript.Echo errResultsNext
13.解压文件夹
strComputer = "."Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _     ("Select * from Win32_Directory where name = 'c:\\Scripts'")For Each objFolder in colFolders     errResults = objFolder.Uncompress     Wscript.Echo errResultsNext14.检测文件是否存在Set objFSO = CreateObject("Scripting.FileSystemObject")If objFSO.FileExists("C:\FSO\ScriptLog.txt") Then     Set objFolder = objFSO.GetFile("C:\FSO\ScriptLog.txt")Else     Wscript.Echo "File does not exist."End If15.检测文件夹是否存在Set objFSO = CreateObject("Scripting.FileSystemObject")If objFSO.FolderExists("C:\FSO") Then     Set objFolder = objFSO.GetFolder("C:\FSO")Else     Wscript.Echo "Folder does not exist."End If16.向指定文本文件写入数据Const ForAppending = 8Set objFSO = CreateObject("Scripting.FileSystemObject")Set objTextFile = objFSO.OpenTextFile _     ("C:\Scripts\Service_Status.txt", ForAppending, True)Set colServices = GetObject("winmgmts:").ExecQuery _     ("SELECT * FROM Win32_Service")For Each objService in colServices     objTextFile.WriteLine(objService.DisplayName & vbTab & objService.State)NextobjTextFile.Close 17.从文本文件中读取数据Const ForReading = 1Set objFSO = CreateObject("Scripting.FileSystemObject")Set objTextFile = objFSO.OpenTextFile _     ("c:\scripts\ping_response.txt", ForReading)strResponses = objTextFile.ReadAllWscript.Echo strResponsesobjTextFile.Close

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值