寻求一些指导...
我有一个目录,它定期接收名称包含以下信息的文件:
showname-episode-segment.mov
我正在寻找一种将这些文件移动到现有目录中的方法,该目录以文件名的 showname 部分命名。如果存在没有第一个连字符分隔符的文件,则应跳过该文件。如果引入了一个新节目并且相应的文件夹不存在,它将被创建。
任何帮助表示赞赏
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
一个简单的批处理文件就可以解决问题。定义要查找传入文件的位置以及要创建显示文件夹的位置。然后使用一个简单的 FOR 列出所有具有该*-*.mov
格式的传入文件。使用 FOR /F 解析节目名称(第一个之前的文本-
)。如果 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"
)
)