2013-01-16 107 views
1

尋找一些指導文件名模式,以移動文件到文件夾...VBS或CMD文件基於匹配

我有定期接收文件衛生組織名稱包含以下信息目錄:

showname- episode-segment.mov

我正在尋找一種方法將這些文件移動到存在的目錄中,以文件名的顯示部分命名。如果存在沒有第一個連字符分隔符的文件,應該跳過它。如果引入了新的節目並且相應的文件夾不存在,它將被創建。

任何幫助表示讚賞

回答

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 
0

一個簡單的批處理文件可以做到這一點。定義您想要查找傳入文件的位置以及您想要創建演出文件夾的位置。然後使用一個簡單的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" 
) 
)