Не работает "if not exist"

Имеется папка d:\EXPT. В ней появляются два файла EXD и EXF.

Необходимо в d:\In скопировать сначала именно EXF, затем его переместить из d:\EXPT\ в d:\EXPT\а.

После того, как EXF обработает система, то он исчезнет из папки d:\In. И нужно далее закинуть EXD тоже в d:\In. Но обязательно сделать только после того, как из d:\In пропадет EXF файл.

Но у меня при запуске EXF закидывается, потом он пропадает. И далее я запускаю снова cmd, но EXD не копируется, хотя в d:\In пусто.

CMD:

if exist d:\EXPT\EXF??????????.* ( 
    xcopy d:\EXPT\EXF??????????.* d:\In /V /Y
    move  d:\EXPT\EXF??????????.* d:\EXPT\a\
)   
if exist d:\EXPT\EXD??????????.* ( 
    if not exist d:\In\EXF??????????.*(
        xcopy d:\EXPT\EXD??????????.* d:\In /V /Y
        move  d:\EXPT\EXD??????????.* d:\EXPT\a\
    )
)

Ответы (2 шт):

Автор решения: Sergey Tatarincev

для exist надо прописывать полностью имя а не маску. вам надо нечто типа такого

for %%f in (d:\EXPT\EXF??????????.*) do (
    xcopy %%f d:\In /V /Y
    move  %%f d:\EXPT\a\
)
→ Ссылка
Автор решения: Mikhail Sialiuk

Решил сам проблему: if not exist d:\In\EXF??????????.* заменил на if not exist d:\In\EXF??????????.FEE (т е указал точное расширения файла, и все заработало).

→ Ссылка