Po delší době jsem potřeboval použít v dávce program copy.exe a pomocí něj zkopírovat jenom nové soubory, abych zjistil, že to neumím.
Řekněme, že potřebuji automaticky kopírovat soubory z nějakého vzdáleného úložiště, kde mám jen práva pro čtení a bohužel je nutné, abych to dělal v dávce spouštěné na Windows 2000.
Přístup na vzdálené soubory mám přes mapování vzdáleného disku vytočením přes ISDN. Vrozená inteligence mi velela použít program copy a nastavit u něj parametr "hele koukej zkopírovat jen soubory nové a nechtěj to po mě potvrzovat".
Jaké bylo mé překvapení, když jsem zjistil, že jde buď o funkci nedokumentovanou a tedy mě skrytou, nebo funkci zcela neexistující. Naštěstí firma Microsoft má pochopení pro situace, kdy uživatelé chtějí tak nestandardní a složité funkce a přímo pro ně vytvořila další program pro kopírování, který to již umí.
Takže tradá ... místo copy.exe je třeba použít robocopy.exe. Tento program je součástí Recource Kit Tools. Pod odkazem se sice nachází verze pro Win 2003, ale po rozbalení někde alespoň na WinXP stačí program překopírovat třebas na starší Windows 2000, kde v pohodě funguje.
Syntaxe:
Syntaxe Robocopy na Wikipedii
Já potřeboval použít následující syntaxe:
robocopy odkud_kopiruji kam_kopiruji *.pripona_souboru /S /XD adresar_ktery_nechci
kde
/S značí kýžené kopírování jen nových souborů
/XD vynechání adresáře
robocopy odkud_kopiruji kam_kopiruji *.pripona_souboru /XA:atribut
kde
/XA umožní vynechat soubory označené atributem (např. ke čtení, nebo skryté)
zrovna hledám něco takového, ale zjistil jsem že přepínač /S nekopíruje nové soubory ale kopíruje "neprázdné" adresáře
OdpovědětVymazatMě tedy kopíruje jen změněné soubory, tj buď nové, nebo upravené. Naprosto v pohodě.
OdpovědětVymazatxcopy funguje taky úplně skvěle ((o:
OdpovědětVymazatxcopy zdroj cíl /d /Y