因工作需要,需要将大量文档Excel和Word移动到指定文件夹中,Excel和Word的名称和文件夹的名称有相同的,比方说20160102.docx移动到20160102_李明文件中,请问可以实现吗?

解决方案 »

  1.   

    可以的。写个vbs脚本就搞定。
      

  2.   

    vba也可以试下…………………………
      

  3.   

    Dir 函数示例
    本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。Dim MyFile, MyPath, MyName' 返回“WIN.INI” (如果该文件存在)。
    MyFile = Dir("C:\WINDOWS\WIN.ini")   ' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
    ' 函数将返回按条件第一个找到的文件名。
    MyFile = Dir("C:\WINDOWS\*.ini")' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
    MyFile = Dir' 返回找到的第一个隐式 *.TXT 文件。
    MyFile = Dir("*.TXT", vbHidden)' 显示 C:\ 目录下的名称。
    MyPath = "c:\"   ' 指定路径。
    MyName = Dir(MyPath, vbDirectory)   ' 找寻第一项。
    Do While MyName <> ""   ' 开始循环。
       ' 跳过当前的目录及上层目录。
       If MyName <> "." And MyName <> ".." Then
          ' 使用位比较来确定 MyName 代表一目录。
          If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
             Debug.Print MyName   ' 如果它是一个目录,将其名称显示出来。
          End If
       End If
       MyName = Dir   ' 查找下一个目录。
    LoopFileCopy 语句示例
    本示例使用 FileCopy 语句来复制文件。示例中假设 SRCFILE 为含有数据的文件。Dim SourceFile, DestinationFile
    SourceFile = "SRCFILE"   ' 指定源文件名。
    DestinationFile = "DESTFILE"   ' 指定目的文件名。
    FileCopy SourceFile, DestinationFile   ' 将源文件的内容复制到目的文件中。
      

  4.   

    如果是的话用下面代码,默认只处理当前目录下的文件夹和文件:
    Dim fso,objFolders,objFolder,rsshell
    set fso = CreateObject("Scripting.FileSystemObject")
    set rsshell=createobject("wscript.shell")
    Set objFolders = fso.GetFolder(".")
    For Each objFolder In objFolders.SubFolders
    rsshell.run "cmd /c move " & left(objFolder.name,8) & ".* " & objFolder.name,0
    Next处理前
    处理后
      

  5.   

    直接bat脚本:
    @echo off
    setlocal EnableDelayedExpansion
    for /d %%i in (2016*) do (
    ::    echo %%~ni
    set p=%%~ni
    set m=!p:~0,8!
    echo !m!
        for %%a in ( !m!.docx ) do ( echo %%a
    move %%a %%i
    )
        for %%b in ( !m!.xls ) do ( echo %%b
    move %%b %%i
    )
    )
    pause