我试着只备份私人视频而不备份大电影。
大于100000千字节的视频不应复制到USB。我试着跳过所有大于100MB的视频,有什么想法吗?
[autorun]
@echo off
:: variables
/min
SET odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y
echo off
%backupcmd% "%USERPROFILE%\videos" "%drive%\all\vids"
@echo off
cls 发布于 2015-04-08 05:17:45
您可以使用XCopy命令的命令标志来完成此操作=这将指向具有排除的文件类型或文件夹或文件名为的文件。
您可以通过在控制台上输入以下命令来查看XCopy的帮助:XCopy /?
在我们的示例中,我们排除了所有由vbscript创建的大于100 Mo的文件。
Option Explicit
Const size_limit = 100000000 'bytes
Dim FSO,ws,MyFolder,MyExcludeFile,LogTmpFile,LogFile,MyCmd,sSrc,sDest
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("wscript.Shell")
sSrc = "e:\Films"
sDest = "e:\TestCopyFilms"
Set MyFolder = FSO.GetFolder(sSrc)
MyExcludeFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
LogTmpFile = "MyTmpXCopyLog.txt"
LogFile = "MyXCopyLog.txt"
If fso.FileExists(MyExcludeFile) Then
fso.DeleteFile(MyExcludeFile)
End If
Call ListSubFolders(MyFolder)
MyCmd = "XCopy" & " " & sSrc & " " & sDest & " /s /c /d /e /h /i /r /y /EXCLUDE:"& MyExcludeFile &" > " & LogTmpFile &_
" & cmd /U /C Type " & LogTmpFile & " > " & LogFile & " & Del " & LogTmpFile & ""
Call Executer(MyCmd,0)
ws.run LogFile
'*********************************************************************************************
Sub ListSubFolders(Folder)
Dim Subfolder,File
For Each Subfolder in Folder.SubFolders
For Each File in Subfolder.Files
If (File.Size > size_limit) Then
Call WriteLog("\" & File.Name & "\")
End If
Next
ListSubFolders Subfolder
Next
End Sub
'**********************************************************************************************
Sub WriteLog(strText)
Dim fs,ts,MyExcludeFile
Const ForAppending = 8
MyExcludeFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(MyExcludeFile,ForAppending,True)
ts.WriteLine strText
ts.Close
End Sub
'***********************************************************************************************
Function Executer(StrCmd,Console)
Dim ws,MyCmd,Resultat
Set ws = CreateObject("wscript.Shell")
'La valeur 0 pour cacher la console MS-DOS
If Console = 0 Then
MyCmd = "CMD /C " & StrCmd & " "
Resultat = ws.run(MyCmd,Console,True)
If Resultat = 0 Then
'MsgBox "Success"
Else
MsgBox "Une erreur inconnue est survenue !",16,"Une erreur inconnue est survenue !"
End If
End If
'La valeur 1 pour montrer la console MS-DOS
If Console = 1 Then
MyCmd = "CMD /K " & StrCmd & " "
Resultat = ws.run(MyCmd,Console,False)
If Resultat = 0 Then
'MsgBox "Success"
Else
MsgBox "Une erreur inconnue est survenue !",16,"Une erreur inconnue est survenue !"
End If
End If
Executer = Resultat
End Function
'****************************************************************************************************https://stackoverflow.com/questions/29493222
复制相似问题