いくつかのガイダンスを探しています...
名前に次の情報が含まれているファイルを定期的に受け取るディレクトリがあります。
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"
)
)