1

我需要一个 VBScript 来重命名一个文件,然后将它从一个文件夹移动到另一个文件夹。该脚本当前正确重命名文件,但我不知道如何在重命名后将文件移动到新文件夹。

以下是存在的脚本。

Option Explicit

Const SAVE_LOCATION = "\\pccit2\Int\PC\Inbox"
Const strPath       = "D:\Files\pak\VP\"
Const StrPrefix     = "VP"

Dim FSO
Dim FLD
Dim fil
Dim strOldName
Dim strNewName

Set FSO = CreateObject("Scripting.FileSystemObject")
Set FLD = FSO.GetFolder(strPath)

For Each fil In FLD.Files
    strOldName = fil.Path
    strNewName = strPath & strPrefix & Right(strOldName, 10)
    FSO.MoveFile strOldName, strNewName
Next

For Each fil In FLD.Files
    If strNewName = 1 Then
        FSO.MoveFile "\\pccit2\Int\PC\Inbox"
    End If
Next

Set FLD = Nothing
Set FSO = Nothing

我尝试了多种方法来移动文件。以下是其他一些尝试:

If FSO.FileExists("D:\Files\pak\VP\*.*") Then
    FSO.MoveFile "D:\Files\pak\VP\*.*", "\\pccit2\Int\PC\Inbox\*.*"
End If

又一次尝试

If fil.FileExists("D:\Files\pak\VP\*.*") Then
    fil.MoveFile "D:\Files\pak\VP\*.*" , "\\pccit2\Int\PC\Inbox\*.*"
End If
4

2 回答 2

2

MoveFileFileSystemObject对象的方法。它需要至少 2 个参数(源和目标),通配符只能在源路径中使用,而不能在目标路径中使用。目标必须是文件或文件夹路径(如果是文件夹,则带有尾部反斜杠)。文件对象的相应方法是Move,只需一个参数(目标路径)即可调用。此外,您可以一步移动和重命名文件。只需使用新文件名指定目标路径。

For Each fil In FLD.Files
    strNewName = FSO.BuildPath(SAVE_LOCATION, strPrefix & Right(fil.Name, 10))
    fil.Move strNewName
Next

如果您想将重命名与移动分开,您可以通过简单地更改文件名来重命名文件:

For Each fil In FLD.Files
    fil.Name = strPrefix & Right(fil.Name, 10)
    fil.Move SAVE_LOCATION & "\"
Next
于 2016-03-05T11:42:44.550 回答
1

用这个

dim fs
set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.MoveFile "c:\myfolder\*.*","c:\anotherfolder\"
set fs=nothing
于 2016-03-04T20:37:09.880 回答