2014-04-26 54 views
1

我在文件夾A中具有C0001.mxf,C0002.mxf,C0003.mxf,C0004.mxf,C0005.mxf,C0006.mxf,C0007 .MXF,C0008.mxf,C0009.mxf,C0010.mxf,C0011.mxf ECC ..批處理文件夾和文件夾中的舊文件的clipbrd文件名和路徑,除了文件夾B中的同名文件

,我有暫時

考慮我已經安裝在Windows/SYSTEM32的copy.exe(FolderB中的空dos應用程序)http://www.c3scripts.com/tutorials/msdos/clip.zip(例如批量使用:echo %filepath% | clip 2>nul

我想建立一個批處理,做到這一點:在folderA中必須選擇舊的.mxf文件(它有e最早的日期),則必須將其完整的文件名和路徑(例如, c:\ folderA \ C0001.mxf),但是如果在folderA中選擇的文件.mxf已經存在於folderB中(如果它以C0001.avi或C0001。[任何擴展名]存在,或者只是C0001如果folderB已經有C0001和C0002以及C0003 --->該腳本必須複製到clibrd中folderA中不在文件夾B中的下一個較舊的當前文件名和路徑--->放器--Clipbrd C:\ folderA \ C0004.mxf

如果不可能性的批處理文件要問,在beginnig,鍵入的內容是包含.mxf文件(folderA)

源如果FolderB中包含的所有文件名包含在folderA中(例如folderB具有C0001.avi,C0002.avi,C0003.avi,C0004.avi,C0005.avi和folderA具有C0001.mxf,C00 02.mxf,C0003.mxf,C0004.mxf,C0005.mxf)----->腳本走到盡頭

如果用戶沒有鍵入folderA(.mxf文件的源)並在鍵盤上按Enter鍵,文件夾A必須自動設置爲當前文件夾

ps:我有一個腳本,可以識別目錄中的舊文件,但此刻我無法修改它來執行此操作:if在DIR folderA的文件存在於文件夾B,則複製到clibrd下一少老-present在folderA的filenameandpath - 比FolderB中

set ext=.mxf 
for /f "tokens=1,*" %%A in ("%*") do set folder=%%A %%B 
if "%folder%"=="" set folder=%cd% 
if not "%folder:~1,1%"==":" set folder=%cd%\%folder% 
cd /d "%folder%" 
for /f "delims=" %%G in ('dir *%ext% /b /o:-d /t:w') do set file=%%G 
for %%H in ("%file%") do set filename=%%~nH 
echo %filename% | clip 2>nul 
if %errorlevel%==1 goto:EOF 

回答

0

變化發現適合你。

@echo off 
:loop 
set "d=" 
set "done=" 
set /p "d=Type source path (or press enter for current folder): " 
if not defined d set "d=%cd%" 
if not exist "%d%" echo Enter valid path - try again & goto :loop 

cd /d "%d%" 
for /f "delims=" %%a in ('dir *.mxf /b /od /a-d') do (
    if defined done goto :EOF 
    if not exist "d:\folderB\%%~na.*" (
     echo %%~fa|clip >nul 
     set done=1 
    ) 
) 
相關問題