VBS或CMD文件,用于根据文件名模式匹配将文件移动到文件夹中

时间:2013-01-16 20:31:12

标签: vbscript cmd

寻找一些指导......

我有一个定期接收名称包含以下信息的文件的目录:

showname-episode-segment.mov

我正在寻找一种方法将这些文件移动到存在的目录中,以文件名的showsame部分命名。如果存在没有第一个连字符分隔符的文件,则应跳过该文件。如果引入新节目且相应的文件夹不存在,则会创建它。

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

VBScript可能是最简单的。以下是一些如何做你需要的一切的片段。

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
' create a new folder
If Not fso.FolderExists(folderPath) Then
   Set newfolder = fso.CreateFolder(folderPath)
End If
' move a file
If fso.FileExists(filePathAndName) Then
   fso.MoveFile filePathAndName, folderPath
End If
' check file name
Set folder = fso.GetFolder(folderPath)
Set files = folder.Files
For each file In files
    If InStr(file.Name, "-") > 0 Then
        'the file name has a "-" in it
    End If
Next

答案 1 :(得分:0)

一个简单的批处理文件就可以了。定义要查找传入文件的位置,以及创建show文件夹的位置。然后使用简单的FOR列出所有具有*-*.mov格式的传入文件。使用FOR / F解析节目名称(第1 -之前的文本)。如果show文件夹不存在,请创建它,然后移动该文件。

@echo off
setlocal
set "incomingFolder=c:\video\incoming"
set "showsFolder=c:\video\shows"

for %%F in ("%incomingFolder%\*-*.mov") do (
  for /f "delims=-" %%A in ("%%~nF") do (
    if not exist "%showsFolder\%%A" md "%showsFolder%\%%A"
    move "%%F" "%showsFolder%\%%A"
  )
)