2017-08-16 110 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 –

相关问题