2017-08-16 75 views
0

我對基本編程非常陌生,並且遇到任務試圖自動化。我發現了一些我已經能夠使用的東西,但是這個問題相當具體,我還沒有找到相當有效的東西。批處理文件 - 掃描源文件的源目錄(folderA),然後將具有相同文件名的文件從文件夾B複製到文件夾C

我正在使用Sorenson Squeeze將視頻文件編碼成不同的格式。作爲自動監視文件夾過程的一部分,當完成編碼後,Sorenson會將源文件放置在「CompletedSource」文件夾中。我想要做的是創建一個批量文件,該文件可以按計劃每小時運行一次,只有在「CompletedSource」文件夾中存在具有相同名稱的文件時,纔會將「Done」文件夾中的各種編碼文件複製到第三個目錄。這是爲了避免使用計劃的批處理文件,該文件只將所有文件從「完成」複製到歸檔文件中,包括當前正在處理的文件。我只想複製「完整」文件。

例如(當索倫森完全完成的編碼工作):

CompletedSource文件夾將包含

12345.mov(或的.mp4)

完成文件夾將包含

12345_hd.mov,12345_high.mov,12345_high.mp4,12345_med.mp4,12345_lo w.mp4

我想在「完成」的所有.mov文件複製到「QuickTime的」文件夾和所有.mp4文件複製到「MP4」的文件夾。

我試圖測試與低於看起來應該爲MP4拷貝工作:

for %%F in ("C:\test\Done\\*.mp4") do if exist "C:\test\CompletedSource\%%~nF.*" echo copy "%%F" "C:\test\MP4" 

然而,當我刪除回聲它實際上並沒有複製文件。

+0

爲什麼在文件掩碼之前加倍反斜槓? 'C:\ test \ Done \\ * .mp4' – Compo

+0

這裏的預覽是刪除了單獨的斜線,使其看起來像「C:\ test \ Done * .mp4」而不是「C:\ test \ Done \ *」 .mp4「當我第一次打字時。我使用的測試代碼只有一個斜線。 –

回答

0
...echo Xcopy "C:\test\CompletedSource\%%~nF.*" "C:\test\MP4\" 

應該複製所有匹配從指定目錄中的源掩碼到一個名爲...MP4目錄中的文件。

XCOPY將使目標目錄,如果需要,然後根據掩碼進行復制。

您沒有提到任何創建的錯誤消息。只是說它沒有做它應該做的事情不幸的是不是特別有用。我們知道,因爲如果有的話,你不會發布你的問題。

+0

在刪除「echo」後運行批處理文件時,它不會給出任何錯誤,它只顯示以下內容: C:\ test> for%F in(「C:\ test \ Done \ *。mp4」)如果存在「C:\ test \ CompletedSource \%〜 nF。*」xcopy「%F」「C:\ test \ MP4 \」 C:\ test> if exists「C:\ test \ CompletedSource \ 12345_high。 *「xcopy」C:\ test \ Done \ 1234 5_high。mp4「」C:\ test \ MP4 \「 C:\ test> if C:\ test \ CompletedSource \ 12345_low。*」xcopy「C:\ test \ Done \ 12345 _low.mp4」「C: \ test \ MP4 \「 C:\ test>如果存在」C:\ test \ CompletedSource \ 12345_med。*「xcopy」C:\ test \ Done \ 12345 _med.mp4「 「 C:\ test> pause1> nul –

相關問題