Forum
Merhaba,
Domain yapısı olan bit network üzerinde 10.x.x.x makinamızın lokalinde (c:\klasör_ismi\*.pdf) bulunan tüm pdfleri farklı iki ayrı dizine taşıma işlemi yapacak bir batch file hazırlamak istiyoruz. Komut makina üzerinden çalıştırılacak. Bu konuda yardımlarınızı rica ederim.
Dizinlerden biri server storage'i üzerinde diğeri ise direk NAS'tadır.
http://www.cozumpark.com/forums/thread/123938.aspx
forumda açılan benzeri konulardan faydalanabilirsiniz.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Burayı inceler misiniz.
xcopy /e /v /y E:\Agent \\NTSERVER\NTServerC\KevinBackup\Agent
xcopy /e /v /y E:\Agent M:\Backup\Agent
xcopy /e /v /y J:\Netscape\Users\KOB1 \\NTSERVER\NTServerC\KevinBackup\Netscape
xcopy /e /v /y J:\Netscape\Users\KOB1 M:\Backup\Netscape
xcopy /e /v /y F:\MyDocuments \\NTSERVER\NTServerC\KevinBackup\MyDocuments
xcopy /e /v /y F:\MyDocuments M:\Backup\MyDocuments
xcopy /e /v /y F:\Eudora \\NTSERVER\NTServerC\KevinBackup\Eudora
xcopy /e /v /y F:\Eudora M:\Backup\Eudora
Yada farklı bir örnek:
@echo off :: variables set drive=g:\Backup set backupcmd=xcopy /s /c /d /e /h /i /r /k /y echo ### Backing up My Documents... %backupcmd% "%USERPROFILE%\My Documents" "%drive%\My Documents" echo ### Backing up Favorites... %backupcmd% "%USERPROFILE%\Favorites" "%drive%\Favorites" echo ### Backing up email and address book (Outlook Express)... %backupcmd% "%USERPROFILE%\Application Data\Microsoft\Address Book" "%drive%\Address Book" %backupcmd% "%USERPROFILE%\Local Settings\Application Data\Identities" "%drive%\Outlook Express" echo ### Backing up email and contacts (MS Outlook)... %backupcmd% "%USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook" "%drive%\Outlook" echo ### Backing up the Registry... if not exist "%drive%\Registry" mkdir "%drive%\Registry" if exist "%drive%\Registry\regbackup.reg" del "%drive%\Registry\regbackup.reg" regedit /e "%drive%\Registry\regbackup.reg" :: use below syntax to backup other directories... :: %backupcmd% "...source directory..." "%drive%\...destination dir..." echo Backup Complete! @pause
Merhabalar Ozan Bey,
for /r c:\dizin %%f in (*.pdf) do copy "%%f" \\hedef dizin
Kolay gelsin.
Merhabalar Ozan Bey,
for /r c:\dizin %%f in (*.pdf) do copy "%%f" \\hedef dizinKolay gelsin.
İlginize teşekkürler fakat hedef dizine ulaşır iken komutun bir user ve paswd bilgisine ihtiyacı yokmu? Domain yapısının olduğunu belirtmiştim. Ayrıca pdflerin bulunduğu dizinden hedef dizinlere kopyalama yapıldıktan sonra mevcut dizindeki pdflerin silinmesi gerekiyor. Biz bu işlemi manual olarak haftanın belirli iki günü yapacağız. Yani aslında mantığı çok basit. El ile dosyaları copy yapıp hedef iki farklı dizine kopyalayıp, mevcut dizindeki pdfleri siliyoruz. Bu kombinasyonu batch file ile nasıl yapabiliriz?
Kopyalanan dosyaların silinmesi gerekiyorsa copy yerine move kullanılabilir veya kopyalandıktan sonra silinebilir. Hedef dizin olarak belirttiğim paylaşıma açık ve yazma izni olan bir dizini temsil ediyor.
Böyle bişey yazdım, elimdeki makina denemeye müsait olmadığı için test edemedim; ama sıkıntı çıkaracağını sanmıyorum. Bi deneyin bakalım.setlocal enableextensions
REM Girilecek Bilgiler
Set source="C:\dizin\"
Set target1="\\server\yedeklenecek dizin\"
Set target2="\\Nas\yedeklenecek dizin\"
Set usr=kullanıcı adı
Set passwd=şifreREM File Server Bölümü
net use X: %target1% /user:%usr% %passwd%
X:
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
cd Backup~1
set folder=%cd%\
for /r %source% %%f in (*.pdf) do copy "%%f" "%folder%"
cd..REM NAS
net use Y: %target2%
xcopy /E /Y Backup~1 "%target2%"net use %target1% /delete
net use %target2% /delete
if %errorlevel% neq 0 goto end
del /f /s /q %source%*.pdf
:end
Kopyalanan dosyaların silinmesi gerekiyorsa copy yerine move kullanılabilir veya kopyalandıktan sonra silinebilir. Hedef dizin olarak belirttiğim paylaşıma açık ve yazma izni olan bir dizini temsil ediyor.
Böyle bişey yazdım, elimdeki makina denemeye müsait olmadığı için test edemedim; ama sıkıntı çıkaracağını sanmıyorum. Bi deneyin bakalım.setlocal enableextensions
REM Girilecek Bilgiler
Set source="C:\dizin\"
Set target1="\\server\yedeklenecek dizin\"
Set target2="\\Nas\yedeklenecek dizin\"
Set usr=kullanıcı adı
Set passwd=şifre
REM File Server Bölümü
net use X: %target1% /user:%usr% %passwd%
X:
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
cd Backup~1
set folder=%cd%\
for /r %source% %%f in (*.pdf) do copy "%%f" "%folder%"
cd..
REM NAS
net use Y: %target2%
xcopy /E /Y Backup~1 "%target2%"
net use %target1% /delete
net use %target2% /delete
if %errorlevel% neq 0 goto end
del /f /s /q %source%*.pdf
:end
Merhaba, Bu file talep ettiğim algoritmada çalışmıyor, Backup adında tarihin belirtildiği bir klasör oluşturuyor, buna gerek yok. Sadece benim belirrtiğim dizine kopyalaması yeterli olacaktır.
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
satırını silip
cd Backup~1 kısmındada Backup~1 yerine istediginiz klasoru yazabilirsiniz
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
satırını silip
cd Backup~1 kısmındada Backup~1 yerine istediginiz klasoru yazabilirsiniz
Backup'a gerek yok, sadece belirttiğim eydeklenecek dizine yedekleme yapsın yeterli.
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
satırını silip
cd Backup~1 kısmındada Backup~1 yerine istediginiz klasoru yazabilirsiniz
Backup'a gerek yok, sadece belirttiğim eydeklenecek dizine yedekleme yapsın yeterli.
aynı şeyi demişim zaten backup~1 yerine istediğiniz klasoru yazabilirsiniz
mkdir "Backup %date:~-4,4%-%date:~-10,2%-%date:~7,2%"
satırını silip
cd Backup~1 kısmındada Backup~1 yerine istediginiz klasoru yazabilirsiniz
Backup'a gerek yok, sadece belirttiğim eydeklenecek dizine yedekleme yapsın yeterli.
aynı şeyi demişim zaten backup~1 yerine istediğiniz klasoru yazabilirsiniz
İstediğim herhangi bir klasör yok. Aynı şeyi mi demişsiniz, yanılıyorsunuz.
Set target1="\\server\yedeklenecek dizin\"
Set target2=\\Nas\yedeklenecek dizin\
Zaten burada istediğim yer istediğim klasör.
Bir daha neden ayrı bir klasör belirtiyoruz veya yazıyoruz onu anlamış değilim.
setlocal enableextensionsREM Girilecek Bilgiler
Set source="C:\dizin\"
Set target1="\\server\yedeklenecek dizin\"
Set target2="\\Nas\yedeklenecek dizin\"
Set usr=kullanıcı adı
Set passwd=şifreREM File Server Bölümü
net use X: %target1% /user:%usr% %passwd%
for /r %source% %%f in (*.pdf) do copy "%%f" "%target1%"REM NAS
net use Y: %target2%
for /r %source% %%f in (*.pdf) do copy "%%f" "%target2%"
net use %target1% /delete
net use %target2% /delete
if %errorlevel% neq 0 goto end
del /f /s /q %source%*.pdf
:end
en kısa yöntem ile, Backup almak istediğiniz sunucu üzerinde bir klasör açın ve paylaşım verin.
net use S: \\10.10.10.10\IstTmgBck
cd C:\Program Files\Microsoft SQL Server\MSSQL10.ISARS\MSSQL
net stop MSSQL$ISARS /yes
rar a %date%.rar data
net start MSSQL$ISARS /yes
xcopy *.rar s:\ /i /y
del *.rar
net use s: /delete
hem kopylar hemde günün tarihine göre rar'larsınız rarlamak sadece kopyalamak isterseniz rar'lı satırı çıkatrın aradan.
not: bu cmd dosyasının backup alınacak sunucudan çalıştırmanız lazım. Yani sql backup'ını alacaksanız SQL server üzerinde zamanlayın.
setlocal enableextensions
REM Girilecek Bilgiler
Set source="C:\Kopyasi_Alinacak_Dizin\"
Set target1="\\Dizin1"
Set target2="\\Dizin2"
Set usr=username
Set passwd=password
REM File Server Bölümü
net use X: %target1% /user:%usr% %passwd%
for /r %source% %%f in (*.pdf) do copy %%f %target1%
REM NAS
net use Y: %target2%
for /r %source% %%f in (*.pdf) do copy %%f %target2%
if %errorlevel% neq 0 goto end
del /f /s /q %source%*.pdf
:end
Komutları ile pdf'leri kopyalamayı başardım.
hocam peki kaynak klasörde bulunan kopyalayacağım dosyaların gg/aa/yyyy tarihinde olanları nasıl kopyalayabilirim?