Vbscript 需要使用VBS移动和重命名文件的帮助吗

Vbscript 需要使用VBS移动和重命名文件的帮助吗,vbscript,Vbscript,我正在编写一个脚本,需要执行以下操作: 在工作文件夹中,我有如下文件夹结构: A 一, 二, B 一, 二, 根文件夹中存在需要根据文件名移动到这些文件夹中的文件。文件名示例为“A,1~1001文本”。我的脚本(下面)将当前将此文件移动到文件夹“A”中,并使用逗号作为分隔符重命名文件“1~1001 Text” Dim fso Dim CurrentFolder Dim Files Dim NewFolderName Dim TruncatedFileName Dim NewFileN

我正在编写一个脚本,需要执行以下操作: 在工作文件夹中,我有如下文件夹结构:

  • A
    • 一,
    • 二,
  • B
    • 一,
    • 二,
根文件夹中存在需要根据文件名移动到这些文件夹中的文件。文件名示例为“A,1~1001文本”。我的脚本(下面)将当前将此文件移动到文件夹“A”中,并使用逗号作为分隔符重命名文件“1~1001 Text”

Dim fso
Dim CurrentFolder
Dim Files
Dim NewFolderName
Dim TruncatedFileName
Dim NewFileName
Dim aString
Dim Array

Set fso = CreateObject("Scripting.FileSystemObject")
Set CurrentFolder = fso.GetFolder(".")
Set Files = CurrentFolder.Files

For Each File in Files
   If UCase(Right(File.Name,3)) <> "VBS" Then
  TruncatedFileName = Left(File.Name, InstrRev(File.Name, ", ") - 1)
    aString = File.Name
    Array = Split(aString,", ")
    NewFileName = Trim(Array(1))
  File.Move TruncatedFileName & "\"
  fso.MoveFile TruncatedFileName & "\" & File.Name, TruncatedFileName & "\" & NewFileName
   End If
Next
Dim fso
Dim CurrentFolder
暗文件
Dim NewFolderName
Dim截断文件名
暗淡的新文件名
暗收敛
暗淡阵列
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置CurrentFolder=fso.GetFolder(“.”)
Set Files=CurrentFolder.Files
对于文件中的每个文件
如果UCase(Right(File.Name,3))“VBS”,则
TruncatedFileName=Left(File.Name,InstrRev(File.Name,“,”)-1)
aString=File.Name
数组=拆分(aString,“”)
NewFileName=Trim(数组(1))
File.Move TruncatedFileName&“\”
fso.MoveFile TruncatedFileName&“\”&File.Name,TruncatedFileName&“\”&NewFileName
如果结束
下一个
我需要的是,代码将文件夹“A”中的文件“1~1001 Text”移到子文件夹“1”中,并使用“~”作为分隔符重命名文件“1001 Text”。
我尝试创建每个变量的2个,并在For Next语句中复制代码,但这不起作用。。。有什么建议吗?提前谢谢。

我想你需要这样的东西。。。。(未测试)

Dim fso
Dim CurrentFolder
暗文件
暗阵列1
暗阵列2
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置CurrentFolder=fso.GetFolder(“.”)
Set Files=CurrentFolder.Files
对于文件中的每个文件
如果UCase(Right(File.Name,3))“VBS”,则“仅处理非.VBS文件”
Array1=Split(File.Name,“,”)根据,
如果(Len(Array1(0))=1),则“如果第一部分是单个字符(文件夹名称)的值”
Array2=Split(Array1(1),“~”)现在拆分文件名的第二部分
如果(Len(Array2(0))=1)和(IsNumeric(Array2(0))),则“如果它具有有效的单数值文件夹名称
fso.MoveFile(File,Trim(Array1(0))&“\”&Trim(Array2(0))&“\”&Trim(Array2(1))”执行移动
其他的
MsgBox(“无法从文件“&file.Name&”中分析“~”)
如果结束
其他的
MsgBox(“无法分析”“来自文件”“&file.Name&”“”)
如果结束
如果结束
下一个
设置CurrentFolder=Nothing
设置文件=无
设置fso=无

我想你需要这样的东西。。。。(未测试)

Dim fso
Dim CurrentFolder
暗文件
暗阵列1
暗阵列2
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置CurrentFolder=fso.GetFolder(“.”)
Set Files=CurrentFolder.Files
对于文件中的每个文件
如果UCase(Right(File.Name,3))“VBS”,则“仅处理非.VBS文件”
Array1=Split(File.Name,“,”)根据,
如果(Len(Array1(0))=1),则“如果第一部分是单个字符(文件夹名称)的值”
Array2=Split(Array1(1),“~”)现在拆分文件名的第二部分
如果(Len(Array2(0))=1)和(IsNumeric(Array2(0))),则“如果它具有有效的单数值文件夹名称
fso.MoveFile(File,Trim(Array1(0))&“\”&Trim(Array2(0))&“\”&Trim(Array2(1))”执行移动
其他的
MsgBox(“无法从文件“&file.Name&”中分析“~”)
如果结束
其他的
MsgBox(“无法分析”“来自文件”“&file.Name&”“”)
如果结束
如果结束
下一个
设置CurrentFolder=Nothing
设置文件=无
设置fso=无

如果我错了,请纠正我:例如,如果您有X~Y-Text文件,您是否希望创建一个名为X的文件夹,并在稍后将其重命名为Y-Text时移入该文件?文件结构已就位,所有文件夹都已存在。文件“A,1~1001 Text”最终需要以一个>1>的“1001 Text”结尾。如果我错了,请纠正我:您是否希望,例如,如果您有X~Y-Text文件,您应该创建一个名为X的文件夹,并在稍后将其重命名为Y-Text时移到该文件中?文件结构已就位,所有文件夹都已存在。文件“A,1~1001文本”最终需要在A>1>中结束“1001文本”,这会在24,97处出现“调用Sub时不能使用括号”错误。我对VBScript非常陌生,不知道如何解决这个问题,但我会尝试不同的想法。此外,文件夹“A”只是一个示例,文件夹中的字符长度会有很大差异。编辑:我删除了最外面的括号和两个嵌套的If/Then语句,它工作得非常好。非常感谢。没问题-我一直忘记vbs中没有括号…:-)很高兴它成功了。这在24,97处出现了“调用Sub时不能使用括号”错误。我对VBScript非常陌生,不知道如何解决这个问题,但我会尝试不同的想法。此外,文件夹“A”只是一个示例,文件夹中的字符长度会有很大差异。编辑:我删除了最外面的括号和两个嵌套的If/Then语句,它工作得非常好。非常感谢。没问题-我一直忘记vbs中没有括号…:-)很高兴它起作用了。
Dim fso
Dim CurrentFolder
Dim Files
Dim Array1
Dim Array2

Set fso = CreateObject("Scripting.FileSystemObject")
Set CurrentFolder = fso.GetFolder(".")
Set Files = CurrentFolder.Files

For Each File in Files


If UCase(Right(File.Name,3)) <> "VBS" Then 'only do non .vbs files

    Array1 = Split(File.Name, ", ") ' split the filename based on the ,

    If (Len(Array1(0)) = 1) Then ' if the first part was a value single character (folder name) 

        Array2 = Split(Array1(1), "~ ") ' now split the second part of the filename

        If (Len(Array2(0)) = 1) And (IsNumeric(Array2(0))) Then ' if it had a valid single number value numeric folder name

            fso.MoveFile(File, Trim(Array1(0)) & "\" & Trim(Array2(0)) & "\" & Trim(Array2(1))) ' do the move

        Else

            MsgBox("Could not parse '~ ' from file '" & File.Name & "'")

        End If

    Else

        MsgBox("Could not parse ', ' from file '" & File.Name & "'")

    End If

End If

Next

Set CurrentFolder = Nothing
Set Files = Nothing
Set fso = Nothing