我在文件夹A C0001.mxf,C0002.mxf,C0003.mxf,C0004.mxf,C0005.mxf,C0006.mxf,C0007.mxf,C0008.mxf,C0009.mxf,C0010.mxf,C0011.mxf ecc ..
我暂时将文件夹B清空
考虑我在windows / system32上安装了copy.exe(dos应用程序)http://www.c3scripts.com/tutorials/msdos/clip.zip(例如批量使用:echo %filepath% | clip 2>nul
)
我想构建一个执行此操作的批处理:在folderA中必须选择较旧的.mxf文件(thay具有最早的日期),然后必须将clipbrd放入其完整的filename和路径(例如c:\ folderA \ C0001.mxf)使用clip.exe应用程序,但是如果在folderA中选择的文件.mxf已经存在于folderB中(如果它存在为C0001.avi或C0001。[任何扩展名]或只是C0001而没有扩展名)那么脚本必须复制在clibrd中,folderA中不存在的下一个较旧的文件的文件名和路径不在folderB --->示例:如果folderB已经具有C0001和C0002以及C0003 --->脚本必须放入clipbrd C:\ folderA \ C0004.mxf
如果可能,批处理文件必须在beginnig上询问输入包含.mxf文件的源(folderA)
如果folderB包含folderA中包含的所有文件名(示例folderB具有C0001.avi,C0002.avi,C0003.avi,C0004.avi,C0005.avi和folderA具有C0001.mxf,C0002.mxf,C0003.mxf, C0004.mxf,C0005.mxf)----->脚本走到尽头,什么都不做
如果用户没有键入folderA(.mxf文件的来源)并按键盘上的Enter键,则文件夹A必须自动设置为当前文件夹
ps:我有一个脚本可以识别目录中的旧文件,但目前我无法修改它来执行此操作:如果文件夹B中的文件存在于文件夹B中,则将文件名和路径复制到clibrd中文件夹A中的下一个旧版本 - 比在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 :(得分:0)
更改d:\folderB
以适合您。
@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
)
)