2016-03-29 11 views
3

Ben bir acemi ama kaynağın klasör içeriğini okuyan, dosyaları hedefle karşılaştıran, eşlemeleri yedekleyen bir toplu iş dosyası oluşturmaya çalışıyorum ve daha sonra kaynak dosyaları hedefe taşır. Sanırım kaynak dizinindeki dosya içerikleri bir maske gibi çalışır.Toplu halde kaynak klasör içeriğine göre bunları değiştirmeden önce belirli dosyaları yedekleme

Bu sonucu elde etmek için kullanabileceğim bir teknik var mı? Ben Robocopy ve XCopy denedim ama ne aradığım ile denedim. XCopy bir hariç tutma seçeneğine sahiptir, ancak ihtiyacım olanın tam tersidir. Herhangi bir öneri çok takdir edilecektir.

kurmak şu şekildedir:

Bu klasörler içeriyor bu

Parent_folder_new 
Folder1  Folder2  Folder3 
    File1   File1  File1 
    File2   File2  File2 
    File3   File3  File3 

eski yerine yeni dosyaları var: kaynak dosyaları önce

Parent_folder_old 
Folder1  Folder2  Folder3 
    File2  File1  File1 
    File3      File3 

hedef olanları üzerine Sadece yakında yazılacak dosyaların yedeklenmesine ihtiyacım var. deyimi ise

Bir denedim ama bu biraz ben yapmaya çalışıyorum ne temizler umut

Set folder[1]=folder1 
Set folder[2]=folder2 
Set folder[3]=folder3 

for F "tokens=2 delims==" %%f in ('set folder[') do (
    if Parent_folder_new\%%f==Parent_folder_old\%%f 
::copy results of if statement to Parent_folder_backup\%%f 
) 

sonra nereye bilmiyorum.

+0

Lütfen ne denediğinizi paylaşın ve sorunlarınız hakkında tam olarak ne olduğunu açıklayın, o zaman size yardımcı olabiliriz. – aschipfl

+0

Spesifiklikleri güncelledim, umarım bu yardımcı olur – Sid

+2

Ebeveyn konumunuzda 3'ten fazla klasör olabileceğinden yaklaşımınız biraz esnek değil gibi görünüyor; sadece bir dizin seviyesi var mı, yoksa daha derin bir ağaç mı? Eğer ikincisi doğruysa, sadece ilk dizin seviyesini ele almak ve daha derin yalancı maddeleri görmezden gelmek ister misiniz? her neyse, eğer doğru anladıysam, kopyalanacak dosyaların bir listesini almak için 'xcopy/L/U' kullanabilirsiniz ('/L' 'xcopy''ı sadece listeyi listeleyip, kopyalamamaktadır) ve bunu bir yedekleme işi için giriş yapın ve daha sonra 'xcopy/U' kullanın (bu sefer gerçekten kopyalamak için'/L' anahtarı olmadan) ... – aschipfl

cevap

0

Taşınmıyorum için dosyaları

copy /y C:\path\folder1 C:\destination 

ve bu kopyalanması için bu kullanmak o

move /y C:\path\folder1 C:\destination

İstediğiniz herhangi bir klasöre Folder1'ı değiştirmek zorunda kalacaktır. Bunu parmak izlerimi yedeklemek için kullandım.

echo off 
:start 
echo What folder/files do you want to copy? 
set /p copy=: 
echo Is %copy% correct? (Y/N) 
echo Note: This must be a directory path. 
set /p final=: 
if %final% == Y goto desRequest 
if %final% == N goto start 
:desRequest 
echo Destination? 
set /p destination=: 
echo Is %destination% correct? (Y/N) 
set /p finalDes=: 
if %finalDes% == Y pause 
if %finalDes% == N goto desRequest 
echo Copying... 
copy /y %copy% %destination% 
echo Copied! 
pause 
cls 
goto start 

Bunu bir name.bat dosyasına kopyalayın ve ayarlandıysanız!

İlgili konular