如果文件存在于Vbscript中,如何在以增量重命名文件的同时移动该文件?

如果文件存在于Vbscript中,如何在以增量重命名文件的同时移动该文件?,vbscript,Vbscript,为了改进我的脚本 我创建此代码是为了在主脚本中实现它之前对其进行测试,但是,在第46行,我遇到了一些问题,错误是“文件不存在” 谢谢你的帮助 Option Explicit Dim SFile,SFile1,SFile2,SFile3,SFile4,Folder,Title,Rename Title = "Moving File to the Quarantaine Folder ..." SFile = "E:\HackooTest\Nouveau dossier\VIRUS.vbs" Fol

为了改进我的脚本

我创建此代码是为了在主脚本中实现它之前对其进行测试,但是,在第46行,我遇到了一些问题,错误是“文件不存在”

谢谢你的帮助

Option Explicit
Dim SFile,SFile1,SFile2,SFile3,SFile4,Folder,Title,Rename
Title = "Moving File to the Quarantaine Folder ..."
SFile = "E:\HackooTest\Nouveau dossier\VIRUS.vbs"
Folder = "E:\HackooTest\Quarantaine"
Rename = GetNameFile(sFile)
Call MoveFile2Quarantaine(sFile,Folder,Rename)
MsgBox "The File " & DblQuote(Rename) & " is moved to the Quarantaine Folder",VbInformation,Title
'*************************************************************************************
SFile1 = "E:\HackooTest\Nouveau dossier(2)\VIRUS.vbs"
Rename = GetNameFile(sFile1)
Call MoveFile2Quarantaine(sFile1,Folder,Rename)
MsgBox "The File " & DblQuote(Rename) & " is moved to the Quarantaine Folder",VbInformation,Title
'*************************************************************************************
SFile2 = "E:\HackooTest\Nouveau dossier(3)\VIRUS.vbs"
Rename = GetNameFile(sFile2)
Call MoveFile2Quarantaine(sFile2,Folder,Rename)
MsgBox "The File " & DblQuote(Rename) & " is moved to the Quarantaine Folder",VbInformation,Title
'*************************************************************************************
SFile3 = "E:\HackooTest\Nouveau dossier(4)\VIRUS.vbs"
Rename = GetNameFile(sFile3)
Call MoveFile2Quarantaine(sFile3,Folder,Rename)
MsgBox "The File " & DblQuote(Rename) & " is moved to the Quarantaine Folder",VbInformation,Title
'*************************************************************************************
SFile4 = "E:\HackooTest\Nouveau dossier(5)\VIRUS.vbs"
Rename = GetNameFile(sFile4)
Call MoveFile2Quarantaine(sFile4,Folder,Rename)
MsgBox "The File " & DblQuote(Rename) & " is moved to the Quarantaine Folder",VbInformation,Title
'*************************************************************************************
Sub MoveFile2Quarantaine(sFile,Folder,Rename)
    'On Error Resume Next
    Dim  FSO,Ws,Tab,i,j
    Set Ws = CreateObject("Wscript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Tab = Split(sFile,"\")
    'Rename = Tab(UBound(Tab))
    i = 0
    j = i + 1
    Do
        i = i + 1
        'If FSO.FolderExists(Folder) Then
            If Not FSO.FileExists(Folder & "\" & Rename & "_Infected.txt") Then
                FSO.GetFile(sFile).Move Folder & "\" & Rename & "_Infected.txt"
                Exit Sub
            ElseIf Not FSO.FileExists(Folder & "\" & Rename & "("& i &")" & "_Infected.txt") Then 'And FSO.FileExists(Folder & "\" & Rename & "_Infected.txt") Then
                FSO.GetFile(sFile).Move Folder & "\" & Rename & "("& j &")" & "_Infected.txt"
                Exit Sub
            ElseIf j = i Then
                j = j + 1
                If Not FSO.FileExists(Folder & "\" & Rename & "("& j &")" & "_Infected.txt") Then
                    FSO.GetFile(sFile).Move Folder & "\" & Rename & "("& j &")" & "_Infected.txt"
                    Exit Sub
                End if
            End If
        'End If
    Loop Until j = i
End Sub
'**********************************************************************************************
'Fonction pour ajouter les doubles quotes dans une variable
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'**********************************************************************************************
Function GetNameFile(sFile)
    Dim  Tab
    Tab = Split(sFile,"\")
    GetNameFile = Tab(UBound(Tab))
End Function

我这样解决了我的问题:

Option Explicit
Dim fso,Ws,sFiles,sFile,sFileName,Quarantaine,Title
Title = "Déplacement des fichiers suspects dans la quarantaine" 
Set fso = CreateObject("Scripting.FileSystemObject")
Set Ws = CreateObject("wscript.Shell")
Quarantaine = "e:\HackooTest\Quarantaine"
sFiles = Array( _
"e:\HackooTest\Folder1\VIRUS.vbs", _
"e:\HackooTest\Folder2\VIRUS.vbs", _
"e:\HackooTest\Folder3\VIRUS.vbs", _
"e:\HackooTest\Folder4\VIRUS.vbs", _
"E:\HackooTest\Folder5\VIRUS.vbs", _
"E:\HackooTest\Folder6\VIRUS.vbs" _
)

For Each sFile In sFiles
    If fso.FileExists(sFile) Then
        sFileName = GetNewName(sFile)
        fso.MoveFile sFile,sFileName 
        Ws.Popup "Le fichier " & DblQuote(sfile) & " est déplacé vers le dossier de quarantaine comme " & DblQuote(sFileName),"4",Title,VbInformation
    Else
        Ws.Popup DblQuote(sfile) & " n'existe pas !","2",Title,VbExclamation
    End If
Next
'**********************************************************************************************
Function GetNewName(sFile)
    Dim snamebase,sname,i,sTarget
    snamebase = Split(Right(sFile, Len(sFile) - InStrRev(sFile,"\")),".")(0)
    sname = snamebase
    i = 0
    While i < 100
        sTarget = Quarantaine & "\" & sname & "_Infected.txt"
        If fso.FileExists(sTarget) Then
            i = i + 1
            sName = snamebase & "(" & i & ")"
        Else
            GetNewName = sTarget
            Exit Function
        End If
    Wend
End Function
'**********************************************************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'**********************************************************************************************
选项显式
尺寸fso、Ws、sFiles、sFile、sFileName、Quarantaine、标题
Title=“卫生检疫局”
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置Ws=CreateObject(“wscript.Shell”)
Quarantaine=“e:\HackooTest\Quarantaine”
sFiles=数组(_
“e:\HackooTest\Folder1\VIRUS.vbs”_
“e:\HackooTest\Folder2\VIRUS.vbs”_
“e:\HackooTest\Folder3\VIRUS.vbs”_
“e:\HackooTest\Folder4\VIRUS.vbs”_
“E:\HackooTest\Folder5\VIRUS.vbs”_
“E:\HackooTest\Folder6\VIRUS.vbs”_
)
对于sFiles中的每个sFile
如果存在fso.files(sFile),则
sFileName=GetNewName(sFile)
fso.MoveFile sFile,sFileName
Ws.弹出窗口“Le fichier”和DblQuote(sfile)以及“est déplacévers Le docsier de quarantaine comme”和DblQuote(sFileName),“4”,标题,信息
其他的
Ws.Popup DblQuote(sfile)和“n'existe pas!”,“2”,标题,感叹号
如果结束
下一个
'**********************************************************************************************
函数GetNewName(sFile)
暗淡的斯奈姆基地,斯奈姆,我,明星
snamebase=拆分(右(sFile,Len(sFile)-InStrRev(sFile,“\”),“)(0)
sname=snamebase
i=0
当我<100
sTarget=Quarantaine&“\”&sname&“\u Infected.txt”
如果存在fso.files(sTarget),则
i=i+1
sName=snamebase&“(&i&”)
其他的
GetNewName=sTarget
退出功能
如果结束
温德
端函数
'**********************************************************************************************
函数DblQuote(Str)
DblQuote=Chr(34)和Str&Chr(34)
端函数
'**********************************************************************************************

我假设文件
E:\HackooTest\Nouveau docsier\VIRUS.vbs
不存在。看起来这是传递给函数的,也是您试图在上使用的
GetFile()