Ես ունեմ այս սցենարին համապատասխան 3 թղթապանակ:
Թղթապանակ 1 - պարունակում է բոլոր առկա պատկերները (PNG), որոնք տեսակավորված են ՄԻԱՅՆ ենթագրքերով, որոնք կազմում են հազարավոր առանձին ֆայլեր: Արմատային թղթապանակում չկա:
Թղթապանակ 2 - նոր ստացված պատկերներ՝ բոլորը արմատային պանակում: Ես կարծում եմ, որ կարևոր չէ բացատրել, թե ինչպես են դրանք ձեռք բերվում, ի տարբերություն այն փաստի, որ կլինեն կրկնօրինակ ֆայլերի և նոր ֆայլերի խառնուրդ:
Թղթապանակ 3 - դատարկ թղթապանակ:
Քանի որ 1-ին թղթապանակն ունի ամենաշատ ֆայլերը, ես պետք է ստուգեմ թղթապանակ 2-ի բոլոր ֆայլերը թղթապանակ 1-ի ամեն ինչում ռեկուրսիվ, (և ոչ հակառակը, կատարողականի նկատառումներով), այնուհետև պատճենեմ: /տեղափոխեք այն, ինչ նոր է թղթապանակ 3 (այս կերպ ես կարող եմ ձեռքով մաղել և համապատասխանաբար դասավորել դրանք):
Համեմատությունը կարող է կատարվել զուտ ֆայլի անվան հիման վրա:
Ես լայնորեն նայեցի ֆորումներում և գտա միայն 1 սցենար, որն աշխատում է լավագույնս, բայց հիմնված է երկու թղթապանակների վրա, որոնք չունեն ենթագրքեր:
Իմ խնդիրն այն է, որ ես կարծես թե չեմ կարողանում այն համեմատել ֆայլերը թղթապանակ 1-ի հետ ռեկուրսիվ կերպով: Այն ավարտվում է պարզապես 2-րդ պանակի ամեն ինչ պատճենելով 3-րդ թղթապանակում, քանի որ այն ստուգում է թղթապանակ 1-ի արմատային թղթապանակը, որը պարունակում է ոչ այլ ինչ, քան ենթագրքեր:
Խնդիրի կոդը՝
@echo off
set "Folder1=Folder1"
set "Folder2=Folder2"
set "Folder3=Folder3"
for /f "delims=" %%F in ('dir /b "%folder2%"') do (
if not exist "%folder1%\%%F" copy "%folder2%\%%F" "%folder3%" && echo Copied "%%F"
)
pause
Exit
Վերոնշյալ կոդի վարքագիծը՝
Անցնում է 2-րդ թղթապանակի յուրաքանչյուր ֆայլ, և եթե 1-ին թղթապանակում նույն անունով ֆայլ գոյություն չունի (միայն արմատական պանակը), այն պատճենելու է այն 3-րդ թղթապանակում:
Ես կցանկանայի, որ այն ռեկուրսիվ կերպով ստուգի թղթապանակ 1-ի բովանդակությունը, ոչ միայն արմատային թղթապանակը:
Ես փորձել եմ այն ուղղել բազմաթիվ ձևերով, օրինակ՝ փոխել IN-ը NOT IN-ի կամ փորձել ինչ-որ բան գտնել, որպեսզի "%folder1%\%%F"
-ն ունենա ռեկուրսիվ պարամետր, ինչպիսին "%folder1%\..\%%F"
ն է, բայց իմ սահմանափակ գիտելիքներով ոչինչ չի ստացվել:
Ցանկալի է, որ ես կցանկանայի, որ ամբողջ գործընթացը կատարվեր միայն 1 սցենարով:
Կանխավ շնորհակալություն ձեր օգնության համար: Խնդրում եմ տեղեկացնել ինձ, եթե որևէ բանի վերաբերյալ լրացուցիչ պարզաբանումներ են անհրաժեշտ: