Adam The Automator

a Robocopy az egyik leggyakrabban használt parancssori segédprogram, amely nagy mennyiségű adatot másol a Windows rendszerben. Ez egy olyan népszerű eszköz, mert milyen erős. De ezzel a hatalommal együtt jár a komplexitás. Ebben az útmutatóban lebontjuk ezt a komplexitást, és teljes bemutatót adunk ennek a hasznos eszköznek a használatáról.

a Robocopy egy Windows parancssori segédprogram, amely a Windows NT óta elérhető. Ez helyettesíti a kevésbé sokoldalú xcopy segédprogramot. Ez lehetővé teszi a meghajtó vagy a kiszolgáló elérési útjának megadását a fájlok másolásához/áthelyezéséhez a parancssorban.

a Robocopy verziója az írás óta legfeljebb 10.0.18. Ez az a verzió, amelyen teszteltem.

a Robocopy számos olyan funkciót kínál, amelyekkel hatékony és gyors fájlmásolatokat és mozgásokat hajthat végre. Ez lehet:

  • fájlok másolása hálózaton keresztül folytatási képességekkel
  • kihagyhatja az NTFS csatlakozási pontokat, amelyek általában végtelen ciklusokból okoznak hibát
  • másolhatja a fájl-és könyvtárattribútumokat, megőrizve az időbélyegeket
  • másolhatja az NTFS engedélyeket, tulajdonosokat és naplózási információkat
  • másolhatja a könyvtár időbélyegeit
  • fájlok másolása ‘backup’ módban a fájlok másolásának biztosítása érdekében még ezeket a jogokat is megtagadták a rendszergazdától
  • automatikus próbálkozások
  • szinkronizálhat két mappát
  • elég okos ahhoz, hogy kihagyja a már másolt fájlokat
  • lehet másolni utak nagyobb, mint a 256 karakteres útvonal limit
  • végre aszinkron másolatok segítségével többszálú képességét.
  • szabványosított kilépési kódokat ad vissza a szkriptek használatához

mint látható, sok másolni kell. Mindent meg akartam fedezni, amit tudnia kell erről a praktikus eszközről.

Tartalomjegyzék

közös Robocopy szintaxis referencia

miért ilyen hosszú blogbejegyzést egyetlen segédprogram? Csak ünnepelje a szemét az alábbi táblázatokon. Van egy csomó lehetőség, hogy másolni vagy áthelyezni fájlokat robocopy! Lesz több lehetőség az egyes szakaszokban.

ezek a táblák a robocopy /? – ből visszaadott Súgó szintaxisból épültek. Értelmesebb részekre bontották őket, idővel hozzáadták őket, és megtisztították, hogy több hasznos információt nyújtsanak.

forrás opciók

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/s almappák másolása
/E almappák másolása, beleértve az üres almappákat is
/másolás: másolási lehetőségek / másolás: DAT D = adatok, A = attribútumok, T = időbélyegek S = biztonság=NTFS ACL-ek, O=tulajdonosi információk, U=auditálási információk. A fájladatok (D) mindig tartalmazzák a fájl időbélyegeit (T)
/SEC fájlok másolása biztonsággal /másolás: DATS
/DCOPY: t könyvtár időbélyegeinek másolása
/COPYALL minden fájl információ másolása /COPY: DATSOU ez megakadályozza az offline fájlok kiszáradását, ehelyett másolja a fájl címkéjét (legalább emc VNX/Unity rendszereken). Ezt hivatalosan nem dokumentálták! Ha kiszáradásra van szüksége (ezért találtam ezt a problémát), akkor nem másolhatja az ACL-eket a fájlok mentén. Hitel: Monsieurx (Reddit)
/NOCOPY másolás nincs fájl információ hasznos / tisztítással
/a csak az archív attribútumkészlettel rendelkező fájlokat másolja
/M tetszik /A, de távolítsa el az archív attribútumot a forrásfájlokból
/LEV:n csak a forrásfa legfelső n szintjét másolja
/MAXAGE: n maximális fájlkor – n napnál/dátumnál régebbi fájlok kizárása
/MINAGE: n minimális fájl életkor-n napnál/dátumnál újabb fájlok kizárása ha n < 1900 akkor n = napok száma, különben n = ÉÉÉÉHHNND dátum
/FFT tegyük FAT Fájl alkalommal 2-második dátum / idő granularitás. Ez helyettesíti az NTFS időbélyegeit. Úgy tűnik, hogy megbízhatóbb, ha hálózaton keresztül továbbítja.
/256 nagyon hosszú út kikapcsolása (> 256 karakter) támogatás

cél lehetőségek

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/A+: fájlattribútum(OK) beállítása a célfájlokon + Hozzáadás
/A-: fájlattribútum (ok) eltávolítása a célfájlokon
/FAT célfájlok létrehozása a 8 használatával.3 csak FAT fájlnevek
/ könyvtárfa-struktúra létrehozása + csak nulla hosszúságú fájlok
/DST kompenzálja az egy órás DST időbeli különbségeket

másolási lehetőségek

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/L csak fájlok listája ne másolja, időbélyeg vagy törölje a fájlokat
/MOV Fájlok áthelyezése Törlés a forrásból másolás után
/MOVE fájlok és könyvtárak áthelyezése Törlés a forrásból másolás után
/sl fájl szimbolikus hivatkozások másolása a cél helyett
/Z fájlok másolása újraindítható módban túlélni egy hálózatot glitch
/B fájlok másolása biztonsági mentési módban
/J másolás nem pufferelt I / O használatával nagy fájlokhoz ajánlott
/NOOFFLOAD fájlok másolása a Windows másolási tehermentesítési mechanizmusának használata nélkül https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831628(v=sz.11)
/EFSRAW titkosított fájlok másolása EFS RAW módban
/TIMFIX Fix fájl alkalommal minden fájlt, még kihagyott fájlokat
/XO régebbi kizárása ha a célfájl létezik, és ugyanaz a dátum vagy újabb, mint a forrás – ne fáradjon felülírni.
/XC megváltozott fájlok kizárása
/XN újabb fájlok kizárása
/XX a célban lévő, de a forrás nélküli fájlok kizárása / XX
/XF fájl … utóneveknek/utaknak/helyettesítő karaktereknek megfelelő fájlok kizárása
/XD dirs … az utóneveknek/utaknak megfelelő könyvtárak kizárása. /az XF és / XD kombinációban is használható, pl. ROBOCOPY c:\source d:\dest / XF *.doc *.XL /XD c:\unwanted / S
/IA: a megadott attribútumok bármelyikével rendelkező fájlokat tartalmazza
/XA: a megadott attribútumokkal rendelkező fájlok kizárása
/IM felülírja a módosított fájlokat. Ez magában foglalja ugyanazokat a fájlokat különböző időpontokban.
/ felülírja a fájlokat akkor is, ha azok már azonosak
/IT tartalmazza csípett fájlok
/XJ csatlakozási pontok kizárása a forrásból / XJ
/XJD csatlakozási pontok kizárása a forráskönyvtárakból
/XJF csatlakozási pontok kizárása forrásfájlok
/MAX: n N bájtnál nagyobb fájlok kizárása
/MIN: n N bájtnál kisebb fájlok kizárása
/MAXLAD: n N óta nem használt fájlok kizárása
/MINLAD:n az n óta használt fájlok kizárása ha n < 1900 akkor n = n nap, különben n = ÉÉÉÉHHNND dátum
/mir könyvtárfa tükrözése /PURGE / E
/ törölje azokat a dest fájlokat/mappákat, amelyek már nem léteznek a forrásban
/XL a forrásban lévő, de a célban nem szereplő fájlok kizárása
/SECFIX Robocopy / secfix javítások fájl biztonság minden fájlon, még a kihagyott fájlokon is. adja meg a másolni kívánt biztonsági információk típusát az alábbi lehetőségek egyikével is: / COPYALL / COPY: O /COPY: S / COPY: U / SEC
/ZB használja az újraindítható módot; ha a hozzáférés megtagadva használja a biztonsági mentési módot

megfigyelési lehetőségek

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/R:n sikertelen másolatok ismételt próbálkozásainak száma / R:1000000 mindig próbálja meg beállítani ezt az opciót. Azt javaslom, hogy állítsa ezt 10-20 – ra, hogy ne pazarolja az időt az újrapróbálkozásra.
/W: n várakozási idő az újrapróbálkozások között / W:30 mindig próbálja meg ezt az opciót alacsonyabb számra állítani, hogy gyorsabban próbálkozzon újra. Javaslom az 5-10-et.
/REG Mentés /R:n és /W:n A Windows beállításjegyzékben alapértelmezett beállításként
/RH:hhmm-hhmm új másolatok indításának időpontja
/TBD várja meg a sharenames meghatározását próbálja újra hiba 67
/PF a futási órák ellenőrzése fájlonként (nem bérletenként) alapon
/MON: n futtassa újra, ha több mint n változás látható
/MOT:M futtassa újra m percben, ha megváltozott

megértése Robocopy viselkedés

már most teljesen fújt a fejedben az összes lehetséges szintaxis lehetőségek állnak rendelkezésre az Ön számára. Most nézzük meg a szintaxis használatának különböző kombinációit.

rendkívül hosszú listát tudnék adni a robocopy parancsokról, egyre növekvő számú kapcsolóval. De azt hiszem, jobb, ha megtanítalak horgászni. Menjünk át, hogyan kell értelmet adni ezeknek a lehetőségeknek.

a Robocopy csak a teljes könyvtárakat másolja

minden robocopy végrehajtásnak lesz egy forrása és egy célkönyvtára. Robocopy másolja és mozgatja a fájlokat a teljes könyvtárban. Nem lehet explicit módon egyetlen fájlt másolni a robocopy segítségével. Ehhez használja a copy vagy a PowerShell Copy-Item parancsot.

azonban, akkor robocopy egyetlen fájl a megfelelő szűrés, amely megtudhatja az alábbiakban. Egyetlen fájlfájl robocopy-jához adja meg a forrás-és célkönyvtárakat, amelyeket közvetlenül a forrás fájlneve követ.

> robocopy c:\src d:\dst copythisfile.txt

a szintaxis a környezettől függ

a robocopy számára megadott lehetőségek a környezettől is függenek. Néhány kérdésre válaszolnia kell, amikor megpróbálja kitalálni, hogy mely lehetőségeket használja.

  • mindig üres könyvtárba másol?
  • lehetséges, hogy a fájlok már léteznek a célkönyvtárban?
  • terabájtnyi adatot másol, vagy csak néhány megabájtot?
  • fájlokat másol hálózaton vagy helyben?
  • …és több.

ha nincsenek fájlok a célfájl könyvtárában, akkor ne törődjön a fájlokat felülíró beállításokkal. Ha nem másol fájlokat a hálózaton keresztül, ne aggódjon ezek miatt a lehetőségek miatt. Határozza meg a jelenlegi és potenciális jövőbeli körülményeit, amelyekben a környezete lesz.

Az alapértelmezett beállítások felismerése

a Robocopy alapértelmezés szerint sok lehetőséget használ. Kiválaszthatja őket a fenti táblázatok megtekintésével. Ezenkívül praktikus kimenetet biztosít minden alkalommal, amikor futtatja a segédprogramot.

az alábbiakban láthatja, hogy amikor a robocopy-t futtattam a legalapvetőbb opciókkal (a forrás-és célmappával), automatikusan használt néhány opciót. Fontos az alapértelmezett viselkedés megértése.

hivatkozzon a kimeneten látható opciókra a fenti opciómagyarázatokkal, és pontosan meg fogja érteni, hogy a robocopy mit csinál a takaró alatt.

alapértelmezett robocopy beállítások
alapértelmezett robocopy beállítások

annak megértése, hogy a Robocopy parancsok mire képesek

ha a copy vagy a PowerShell Copy-Item parancsmagjait használta, akkor valószínűleg megadta a forrást és a célt, és folytatta a napját. Nincs sok lehetőség, amelyet ott konfigurálhat. Ezek a robocopy parancsok alapértelmezett viselkedést mutatnak.

a robocopy viszont sokkal többet ért, és rugalmasságot biztosít a viselkedés módosításához, amennyit csak akar.

fontos tudni, hogy a robocopy nem csak tisztában van egy fájl vagy könyvtár fogalmával. Ennél sokkal több van egy fájlrendszerben, és a robocopy szinte mindent támogat.

egy fájlrendszeren ülő fájl nem csak egy buta objektum, amelynek egyetlen célja van. Sok különböző attribútumok és dolgok, hogy megy a koncepció egy fájlt. Például egy fájl olyan attribútumokkal rendelkezik, mint:

  • időbélyeg (írott, módosított és hozzáférhető)
  • NTFS ACL
  • tulajdonos
  • NTFS naplózási információk
  • rejtett zászló
  • archivált zászló

amikor egy fájl, akkor lehetősége van arra, hogy az összes, hogy a cucc vele együtt, ha akarod.

értse meg, hogy a robocopy futtatásakor nem csak egy fájlt másol, hanem potenciálisan az összes többi információt is lemásolja vele. Fontos ezt felismerni és figyelembe venni a robocopy által megadott opciókban.

Az Alapok: WhatIf forgatókönyvek végrehajtása

ha van egy hatalmas fájlkiszolgálója valahol, amelyet át szeretne költöztetni, és még nem akar semmilyen műveletet végrehajtani, akkor a robocopy segítségével visszaadhatja, hogy mit tett volna.

a /L opcióval megmondhatja a robocopy-nak, hogy sorolja fel az összes megadott fájlt és/vagy mappát, és adja vissza a másolt/áthelyezett fájlok listáját.

a /L opciót bármely más opcióval használhatja. Ez egy nagyszerű módja annak, hogy visszatérjen az összes lehetőséget robocopy volna használni (alapértelmezett vagy sem). Átfogó képet ad arról, hogy mit fog tenni a robocopy, figyelembe véve az Ön által megadott lehetőségeket.

használata / L
használata /L

az alapok: fájlok másolása

a robocopy legalapvetőbb használata a forrás-és célkönyvtár használata opciók nélkül.

> robocopy C:\src C:\dst

ez az opció az összes fájlt (az almappák kivételével) átmásolja C:\src hogy C:\dst.

mindent másolhat, beleértve az almappákat (üres vagy nem) és az NTFS engedélyeket. Ez az, amit meg tudok mondani, az a módszer, amellyel szó szerint átmásolhatunk mindent, ami egy fájlkönyvtárról szól, egy másik könyvtárba.

az alábbiakban az összes NTFS ACL-t, fájltulajdonost, almappát (beleértve az üreseket is) és az összes fájlattribútumot másolom. Mindez csak a /E opcióval lehetséges, hogy az összes üres almappát tartalmazza, a /COPYALL pedig a többit.

> robocopy C:\src C:\dst /E /COPYALL

az alapok: Fájlok áthelyezése

Fájlok áthelyezése fájlok átvitele egyik könyvtárból a másikba, mint a másolás. Az egyetlen különbség a move művelettel az, hogy a forrásfájlokat a másolat után eltávolítják.

fájlok/könyvtárak másolás utáni törléséhez használja a /MOV opciót. Ez eltávolítja az összes fájlt a megadott könyvtárban (nincs almappa).

> robocopy C:\src C:\dst /MOV

a /MOVE használatával az összes fájlt és almappát áthelyezheti.

> robocopy C:\src C:\dst /MOVE

az alapok: fájlok szinkronizálása

a Robocopy lehetővé teszi két könyvtár szinkronizálását. Ez azt jelenti, hogy a célkönyvtárban lévő összes fájl a forráskönyvtárban van, és nem több. /MIR lemásolja az adatokat, lemásolja az összes fájlt a forrás nem a cél, és törli a fájlokat a cél nem a forrás. Vigyázz!

> robocopy C:\src C:\dst /MIR

fájlok másolása hálózaton keresztül

ha fájlokat másol hálózaton keresztül, érdemes megfontolni néhány lehetőséget.

a Robocopy lehetővé teszi a fájlok ‘újraindítható módban’ történő másolását a /Z opcióval. Ez azt jelenti, hogy ha egy fájl elkezd másolni, és félúton meghiúsul, akkor a másolás újra elindulhat, ahelyett, hogy teljesen meghibásodna. A /Z opció akkor hasznos, ha az adatfolyamot hálózaton keresztül vágják le.

figyelem: néhányan arról számoltak be, hogy a /Z használata 1/4-rel csökkenti a teljesítményt. Tudassa velem a megállapításait.

használhatja a /FFT opciót is. Ez a kapcsoló már ismert, hogy pontosabban megőrizni fájl időbélyegek átvitelekor hálózaton keresztül. Ez az opció FAT fájlrendszer időbélyegeket használ NTFS helyett.

robocopy C:\src \SRV1\share /Z /FFT

a /IPG használata a csomagok közötti rés vezérléséhez

fájlok hálózaton keresztüli másolásakor használhatja a /IPG kapcsolót. Ezt csomagközi rés opciónak is nevezik. Ez az opció meghatározza (ezredmásodpercben) azt a gyakoriságot, amelyben a robocopy várni fog az új csomagok küldése között.

mindig használjon UNC útvonalakat, ne meghajtó betűket

a Reddit egyik olvasója felfedezte a nehéz utat, hogy ne használja a leképezett meghajtókat célkönyvtárként. Ehelyett mindig használja mindig használjon UNC elérési utat. Lehet, hogy befut problémák a 256 karakteres korlát, ha nem. Nézze meg ezt a Microsoft dokumentumot további információkért.

Robocopy biztonsági mentési mód (Robocopy /Z)

a Robocopy rendelkezik egy opcióval (/B) vagy biztonsági mentésként újraindítható módba (/ZB), amely biztonsági mentési módban másolja a fájlokat. Mi a” biztonsági mentési mód ” egyébként?

amikor általában átmásol egy fájlt a Windows rendszerben, és megüt egy fájlt, amelynek eléréséhez rendszergazdai jogosultságokra van szükség, hibaüzenet jelenik meg, amely azt jelzi, hogy nincs engedélye. Annak ellenére, hogy helyi rendszergazdaként fut, a Windows nem engedi elérni.

figyelmeztetés: jelentések érkeztek sérült kiszolgálókötetekről, amikor adatokat másoltak egy Windows Server 2016 kiszolgálóra, ahol a duplikáció megszüntetése be van kapcsolva. Ha a /ZB kapcsolót használja,az eredmény egy dedup chunk store lesz, amelyet a rendszer Kötetinformációi tartalmaznak. A másolt fájlok nem lesznek olvashatók, és hibákat generálnak, amikor megpróbálják manipulálni őket. Serverfault link további információkkal.

a biztonsági mentési mód a fájlok elérésének módja az engedélyek aggodalma nélkül.

a Robocopy biztonsági mentési módot használ a SeBackupPrivilege fájlok olvasására, a SeRestorePrivilege felhasználói jogot pedig a szükséges fájlok elérésére. Ez figyelmen kívül hagyja azokat az ászokat, amelyek általában megakadályozzák a fájlok elérését.

a SeBackupPrivilege és a SeRestorePrivilege felhasználói jogokat általában a biztonsági operátorok és a Rendszergazdák csoportjában lévő felhasználókhoz rendelik, de néha eltávolíthatók. A Backup modul kiküszöböli ezt a kockázatot, és ideiglenesen megadja a robocopy-t végrehajtó felhasználónak ezeket a jogokat.

ha ellenőrizni szeretné, hogy a felhasználói fiókja rendelkezik-e ezzel a joggal, futtathatja a whoami /priv parancsot, és mindkét jogot meg kell jeleníteni.

fájlok és mappák szűrése

a rendelkezésre álló lehetőségek nagy többsége a fájlok és könyvtárak sokféle módon történő kizárása. Lebontottam az összes módot, amellyel szűrheti vagy kizárhatja a fájlokat és könyvtárakat különböző kritériumok alapján.

fájlnév vagy fájlkiterjesztés szerint

a robocopy hívásban másolt/áthelyezett fájlok szűrése helyettesítő karakterekkel történik. Használhatja a helyettesítő szűrni a fájlokat megfelelő egy adott fájlnév karakterlánc vagy kiterjesztése.

például, ha csak TXT fájlokat szeretne másolni, megadhatja a *értéket.txt.

> robocopy C:\src C:\dst *.txt

ha csak a-val kezdődő fájlokra szeretne korlátozódni, használhatja a* – ot.

> robocopy C:\src C:\dst a*

a Y0u több fájlnév-egyezést is biztosíthat azáltal, hogy elválasztja őket egy szóközzel az alábbiak szerint.

> robocopy C:\src C:\dst a* b*

ha fájlnév alapján szűr, a robocopy megmutatja a szűrőt a kimeneten.

fájlok szűrése kimenet
fájlok szűrése kimenet

by könyvtár neve

Robocopy lehetővé teszi, hogy kiszűrje elemek nem csak a fájl, hanem a könyvtár nevét is. A robocopy /xd használatával kizárhat bizonyos könyvtárakat, amelyek megfelelnek egy adott névnek.

több mappa másolásakor használja a /XD kapcsolót a mappák kizárásához a futtatásból.

> robocopy C:\src C:\dst /XD "c:\src\exclude"

Fájl/Könyvtár időbélyeg

az alábbiakban megtalálja az összes robocopy opciót, amely kizárja a fájlokat és mappákat a különböző időbélyeg attribútumok alapján.

kapcsoló magyarázat
/DCOPY: t könyvtár időbélyegeinek másolása
/MAXAGE: n N napnál/dátumnál régebbi fájlok kizárása
/MINÁZS:n N napnál/dátumnál újabb fájlok kizárása
/XO ha a célfájl létezik, és ugyanaz a dátum vagy újabb, mint a forrás, ne írja felül
/XN ha a célfájl létezik, és ugyanaz a dátum vagy régebbi, mint a forrás, ne írja felül

két népszerű lehetőség közül lehet választani, ha időbélyegre szűrünk; /XOés /MAXAGE.

/XO lehetővé teszi a fájlok kizárását a másolatból csak akkor, ha azok újabbak, mint a forrás. A /XO opcióval csak új fájlokat robocopyolhat hozzáférési dátum szerint.

> robocopy C:\src C:\dsc /XO

ha tudja, hogy a maximális életkor fájlok lesznek, használhatja a /MAXAGE opciót is. Ez lehetővé teszi, hogy YYYMMDD formátumban adja meg a fájl régebbi dátumát a másolás előtt.

> robocopy c:\src c:\dst /S /MAXAGE:20191001

Robocopy munkák

látta, hogy több tucat lehetőség áll az Ön rendelkezésére. Könnyű, hogy ezek a lehetőségek hamarosan nehézkessé váljanak. Szerencsére van egy jobb lehetőség, mint a memorizálás és annak biztosítása, hogy ezek a lehetőségek minden alkalommal megtalálhatók legyenek.

a Robocopy job fájlok soronként egy opciót tartalmazó szöveges fájlok. Általában a robocopy segítségével hozza létre ezeket a feladatfájlokat. A létrehozás után a robocopy segítségével módosíthatja őket, vagy egy egyszerű szövegszerkesztővel.

különböző robocopy parancsok működnek a feladatokkal.

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/JOB: jobname paraméterek felvétele a megnevezett jobfájlból
/Mentés:jobname paraméterek mentése a megnevezett jobfájlba
/kilépés Kilépés a parancssor feldolgozása után hasznos a paraméterek megtekintéséhez
/NOSD nincs megadva forráskönyvtár
/NODD nincs megadva célkönyvtár
/ha tartalmazza a következő fájlokat

a Robocopy-val létrehozott tipikus feladatfájl RCJ kiterjesztéssel rendelkezik, és úgy néz ki, mint az alábbi kódrészlet. Ez a feladatfájl a robocopy C:\src D:\dst /save:myjob futtatásával jött létre. Láthatja, hogy megjegyzéseket adhat a feladatfájlban a :: használatával, amely a fájl legtöbbje.

megjegyzések nélkül a fájl soronként csak egy opciót tartalmazna.

:::: Robocopy Job C:\MYJOB.RCJ:::: Created by Administrator on Sunday, August 18, XXXX at 8:53:24 AM:::::: Source Directory ::: /SD:C:\SRC\ :: Source Directory.:::: Destination Directory ::: /DD:C:\SRC\ :: Destination Directory.:::: Include These Files ::: /IF :: Include Files matching these names:: *.* :: Include all names (currently - Command Line may override):::: Exclude These Directories ::: /XD :: eXclude Directories matching these names:: :: eXclude no names (currently - Command Line may override):::: Exclude These Files ::: /XF :: eXclude Files matching these names:: :: eXclude no names (currently - Command Line may override):::: Copy options ::: /DCOPY:DA :: what to COPY for directories (default is /DCOPY:DA). /COPY:DAT :: what to COPY for files (default is /COPY:DAT).:::: Retry Options ::: /R:1000000 :: number of Retries on failed copies: default 1 million. /W:30 :: Wait time between retries: default is 30 seconds.:::: Logging Options :::

Feladatfájlok mentése

Feladatfájl mentése olyan egyszerű, mint a /SAVE:<jobname> opció hozzáfűzése a szintaxis végéhez. Cserélje ki a <jobname> értéket a feladat nevére. A /SAVE opció létrehoz egy <jobname>nevű fájlt.rcj a könyvtárban, ahol futott robocopy.

> robocopy C:\src C:\dst /SAVE:myjob

utolsó lehetőségként meg kell adnia a /SAVE értéket. A /SAVE után megadott opciók nem kerülnek hozzáadásra a feladatfájlhoz. Vegye figyelembe azt is, hogy még akkor is, ha már létezik egy meglévő jobfájl, a robocopy mindig felülírja a meglévőt. Backup vagy verzió ellenőrzése a munkát fájlokat!

Megjegyzés: Ha megpróbálja használni a /MT opciót egy feladatfájlba mentéskor, akkor az nem lesz a feladatfájlban. Tudassa velem, hogy sikerült-e ezt belefoglalni.

Jobfájlok használata

miután egy job mentésre került egy jobfájlba, a /JOB:<jobname> opcióval megadhatja azt a jobfájlt, amelyből olvasni szeretne. A Robocopy beolvassa az összes paramétert a feladatfájlban. Ezután ugyanúgy végrehajtja, mintha az opciókat közvetlenül a parancssorban adta volna meg.

> robocopy /JOB:myjob

Feladatfájl létrehozása feladat futtatása nélkül a /QUIT

használatával a /QUIT opció célja nem egyértelmű. A felszínen azt gondolhatja, hogy /QUIT kényszeríti a futást a kilépésre. Ehelyett a /QUIT inkább úgy működik, mint egy opció, amely megakadályozza a job futtatását.

hivatalosan a /QUIT opció “kényszeríti a robocopy-t a parancssor feldolgozásának befejezésére”. Azonban jobb lenne megmagyarázni, mint egy feladatfájl létrehozása munka futtatása nélkül.

ha a /SAVE opciót használja, akkor a feladat is automatikusan fut. Nincs mód feladatfájl létrehozására a feladat első futtatása nélkül. Létrehozhatja az RCJ job fájlt egy szövegszerkesztővel, vagy használhatja a robocopy-t úgy, hogy /QUIT – et fűz a végéig.

> robocopy C:\src C:\dst /SAVE:myjob /QUIT

Feladatfájl szerkesztése

mivel a feladatfájlok csak szöveges fájlok, szerkesztheti őket kedvenc szövegszerkesztőjével, vagy megkérheti a robocopy-t, hogy tegye meg helyetted.

a feladatfájlokat a /JOB, /SAVEés /QUIT kombinációjával szerkesztheti.

például ki szeretné zárni az összes EXE fájlt a Robocopy jobból, amelyet a backupfiles nevű jobfájlba mentett.rcj. Már létrehozta a feladatfájlt, és nem akarja felülírni az egészet. Felveheti az új lehetőséget, mint az alábbi:

> robocopy /JOB:backupfiles /XF *.EXE /SAVE:backupfiles /QUIT

több Job fájl használata

akár a job fájlok használatát is kombinálhatja. Ha több feladatfájlt ad meg ugyanabban a futtatásban, akkor az adott futtatásban használt összes beállítás össze lesz kapcsolva.

például, lehet, hogy van egy nagy fájlok listáját, hogy kizárják a backupfiles másolási feladat. Nyisson meg egy szövegszerkesztőt, és adja hozzá a következőket a kizárás létrehozásához.rcj fájl.

/XF a.exe b.txt c.cer

ezután kizárhatja ezeket a fájlokat a backupfiles feladatból:

> robocopy /JOB:backupfiles /JOB:exclude

mivel az eredeti backupfiles feladatfájl már kizárta az összes EXE fájlt, a fenti Futtatás szintaxisa /XF *.exe a.exe b.txt c.cer lenne. Robocopy egyesíti az összes lehetőséget egy.

Robocopy sablonok és a /NOSD és /NODD opciók

ha sok jobfájllal dolgozik, akkor a paraméterek elfogadásához készíthet jobfájlokat. A Robocopy lehetővé teszi az értékek átadását a parancssorból a feladatokhoz, amikor futtatják őket. A paraméter nem robocopy kifejezés, de jól illeszkedik ebbe a forgatókönyvbe.

a paraméterek elfogadásához robocopy jobokat építhet úgy, hogy nem ad meg forrás-vagy célkönyvtárat, vagy kifejezetten a /NOSD és /NODD opciókkal, vagy csak egyáltalán nem ad meg forrás-és célkönyvtárat.

egyszerű példaként hozzon létre egy forrás vagy cél nélküli feladatfájlt az alábbi szintaxis segítségével. Ennek a feladatnak az a célja, hogy az összes TXT és EXE fájlt átmásolja egy forrásból egy célkönyvtárba.

> robocopy *.txt *.exe /SAVE:backupfiles /QUIT

önmagában ez a feladat soha nem fog működni, mert nincs megadva forrás vagy célkönyvtár.

ha forrás-és célkönyvtár nélküli feladatot hoz létre, a feladatfájl automatikusan létrejön a /NOSD és /NODD beállításokkal.

/NOSD /NODD/IF *.txt *.exe/DCOPY:DA/COPY:DAT/R:1000000/W:30

a /NOSD beállítások azt mondják a robocopy-nak, hogy nem adott meg forráskönyvtárat, míg a /NODD azt jelzi, hogy nem adott meg célkönyvtárat. Ez a feladatfájl egy” sablon ” más feladatokhoz.

de átadhatja a “paramétereket” ehhez a feladatfájlhoz, hogy megadja a forrás-és célkönyvtárakat.

az imént létrehozott feladatfájl használata fájlok másolásához C:\src hogy C:\dst, ezeket a könyvtárakat közvetlenül a parancssorba adhatja át, amelyet ezután átadnak a feladatnak.

> robocopy /JOB:backupfiles C:\src C:\dst

aszinkron másolás (Robocopy /MT)

alapértelmezés szerint a robocopy egyszerre csak egy fájlt dolgoz fel. A /MT opcióval azonban arra kényszerítheti a robocopy-t, hogy több fájlt másoljon, mint egyszerre.

a /MT opció lehetővé teszi a szálak számának megadását, amelyeket a robocopy a fájlok másolásához használ. A maximum 128.

használhatja /MT így:

> robocopy C:\src C:\dst /MT:32

ebben az esetben a 32-est választottam kiindulópontnak. Azt javaslom, hogy 32 – től kezdve nézze meg, hogy a számítógép és a hálózat hogyan kezeli a dolgokat, és ennek megfelelően állítsa be a szálakat.

vegye figyelembe, hogy ha a /MT – et használja, akkor a /IPGvagy a /EFSRAW nem használható. A jobb teljesítmény érdekében ne adja ki a naplót a konzolra. Ehelyett használja /LOG.

ütemezés Robocopy

Robocopy van néhány módon lehet ütemezni, ha fut.

a /Rh

használatával a /RH opcióval megmondhatja a robocopy-nak, hogy csak egy adott idő alatt fusson. Ez nagyszerű, ha van karbantartási ablaka, vagy olyan idő, amikor mindenki hazament a napra.

a kezdési és befejezési időt HHMM-HHMM formátumban adhatja meg. Például a robocopy meghívásához, de csak a rendszer órája által meghatározott 5 óra és 9 óra közötti Futtatás engedélyezéséhez futtassa:

> robocopy C:\src C:\dst /RH:1700-0900

látni fogja, hogy ha a robocopy-t ezen órákon kívül hívja meg, akkor megmondja az aktuális időt, és várja meg a kezdési időt.

a Robocopy megmondja, hogy mikor indul, ha ütemezett
a Robocopy megmondja, hogy mikor indul, ha ütemezett

meg kell győződnie arról, hogy mindkét idő 24 órás formátumban van, és pontosan négy számjegy hosszú. Az ablaknak két percnél nagyobbnak kell lennie.

alapértelmezés szerint a /RH használatával a teljes futtatás előtt ellenőrzi a kezdési időt. Ha azonban sok fájlja van, és úgy gondolja, hogy a folyamat ennél hosszabb ideig tarthat, használhatja a /PF opciót. /PF arra kényszeríti a robocopy-t, hogy minden fájl előtt ellenőrizze az ablakot.

a Feladatütemező használata

a

kimeneti napló a Robocopy mindig kimeneti naplót ad vissza. Ön dönti el, hogy a napló megjelenik-e az stdout-on keresztül a konzolon és/vagy átirányítja-e egy naplófájlba.

rengeteg lehetőséged van a robocopy kimenet megjelenítésekor.

kapcsoló magyarázat alapértelmezett viselkedés egyenértékű kapcsoló Megjegyzések
/NP nincs előrehaladás. Elnyomja az előrehaladási információk megjelenítését. Ez akkor lehet hasznos, ha a kimenetet egy fájlra irányítják át.
/unicode az állapotkimenet megjelenítése unicode szövegként
/LOG: file a naplófájl kimeneti állapota és felülírása
/UNILOG: fájl kimeneti állapot unicode naplófájlba és felülírás
/LOG+:fájl kimeneti állapot a naplófájlhoz, és hozzáfűzi a meglévő naplófájlhoz
/UNILOG+: fájl kimeneti állapot a unicode naplófájlhoz és hozzáfűzi a meglévő naplófájlhoz
/TS megjeleníti a fájl időbélyegeit minden feldolgozott fájlhoz.
/FP az egyszerű fájlneveket teljes fájl elérési utakra cseréli a kimeneten.
/NS nem mutatja a fájlméreteket.
/NC elrejti a “szövegcímkék” fájlosztály kimenetét (további információkért látogasson el ide: https://www.uvm.edu/~gcd/2015/04/robocopy-file-classes/)
/NFL elrejti a fájlneveket. A hibák még mindig naplózva vannak. A /L kihagyása esetén törölt vagy törlendő fájlok mindig naplózásra kerülnek
/NDL elrejti a könyvtárlista kimenetét. Teljes fájl pathnames kerülnek kiadásra, hogy könnyebben nyomára problémás fájlokat.
/TEE kimenet a konzol ablakba, valamint a naplófájl
/NJH nincs feladat fejléc
/NJS nincs állás összefoglaló
/bájtok nyomtatási méretek bájtként
/X Minden fájl jelentése, nem csak a kiválasztott fájlok & másolva
/V részletes kimeneti napló készítése, kihagyott fájlok megjelenítése
/ETA a másolt fájlok várható érkezési idejének megjelenítése. Lásd az egyes fájlmásolatok kezdési idejét és a Befejezés becsült idejét az előző példányok megfigyelt átviteli sebessége alapján. Az idők a fájlnév után jelennek meg a következő formátumban:ÓÓ:MM – > ÓÓ: MM (start – > Befejezés).
/hibakeresés hibakeresési kötet információ megjelenítése

a /NJS és /NJH

Naplóelemek korlátozása alapértelmezés szerint a robocopy két elemet ad vissza a kimenetében, egy job fejlécet és egy job összefoglalót.

a job fejléc az egyszerű ROBOCOPY fejléc a tetején.

Robocopy job fejléc
Robocopy job fejléc

a feladat összegzése megmutatja az összes fájl/mappa összefoglaló állapotát, az adatok átvitelének mennyiségét és a Futtatás befejezésének idejét.

Robocopy job summary
Robocopy job summary

ezeket az elemeket elrejtheti a /NJH opcióval a jobfejléc elrejtéséhez, a /NJS opcióval pedig a job-összefoglaló elrejtéséhez. Felveheti ezeket a lehetőségeket, vagy mindkettőt együtt.

a job fejlécének és job-összefoglalójának elrejtése
a job-fejléc és job-összefoglaló elrejtése

a kimeneti napló átirányítása egy fájlba

ha menteni szeretné a kimeneti naplót, átirányíthatja egy szöveges fájlba és/vagy megjelenítheti a konzolon. Ezt hagyományos kimeneti átirányítókkal, például >, >>, PowerShell vagy /LOG opcióval teheti meg.

ha a kimeneti naplót egy fájlba szeretné átirányítani a /LOG opcióval, amely felülírja a meglévő naplófájlokat, használja a /LOG:<filepath> szintaxist, mint az alábbiakban. Az egyetlen kimenet, amelyet a konzolon kap, a naplófájl elérési útja.

> robocopy C:\src C:\dst /LOG:c:\file.log Log File : c:\file.log

ha meg szeretné őrizni bármely meglévő naplófájl tartalmát, és hozzá szeretné fűzni az eredményeket egy fájlhoz, használhatja a + operátort az alábbiak szerint.

> robocopy C:\src C:\dst /LOG+:c:\file.log Log File : c:\file.log

a kimeneti napló átirányítása egy fájlba és megjelenítés a konzolon

ha a kimeneti naplót egy fájlba szeretné menteni, de a konzolon is látni szeretné, használhatja a /TEE opciót. Ez az opció arra készteti a robocopy-t, hogy a kimenetet a naplófájlba írja, miközben továbbra is fenntartja a kimenet visszatérésének alapértelmezett viselkedését a konzolra.

robocopy C:\src C:\dst /LOG+:c:\file.log /TEE

kilépési kódok

mint minden más parancssori segédprogram, a robocopy a végrehajtás eredményétől függően adja vissza a kilépési kódokat. Mindannyian szeretnénk, ha a robocopy mindig sikeresen kilépne a 0 – vel, de ez nem mindig történik meg.

az alábbiakban megtalálja az összes kilépési kódot, amelyet a robocopy visszaad, és azok magyarázatát. A hétnél nagyobb kilépési kód legalább egy hibát jelez a végrehajtás során.

kilépési kód magyarázat
0 nincs művelet. A forrás és a cél szinkronban van.
1 legalább egy fájlt sikeresen lemásoltak.
2 Extra fájlokat vagy könyvtárakat észleltek. Vizsgálja meg a naplót.
3 2-es és 1-es kilépési kód együtt.
4 nem megfelelő fájlok vagy könyvtárak találhatók. Vizsgálja meg a naplót.
5 4-es és 1-es kilépési kód együtt.
6 4-es és 2-es kilépési kód együtt.
7 4-es, 1-es és 2-es kilépési kód együttvéve.
8 legalább egy fájl vagy könyvtár nem másolható. Az újrapróbálkozási határérték túllépve. Vizsgálja meg a naplót.
16 a másolás katasztrofálisan sikertelen.

ne feledje, hogy ha a robocopy-t harmadik féltől származó segédprogramban hajtja végre, akkor az a segédprogram azt gondolhatja, hogy a nem nulla kilépési kód hiba. Ennek megakadályozása érdekében megváltoztathatja a kilépési kódot 0-ra, ha az 1-et ad vissza.

a Robocopy “extra” fájl kilépési kódja egy általános visszatérési kód, ami azt jelenti, hogy egy “extra” fájl a célmappában van, de nem a forrásmappában. Ez a kód kizárja azokat az extrákat, amelyek megakadályozzák a törléseket a rendeltetési helyről.

a kilépési kód módosítása kötegelt fájlban

ha a Robocopy-t kötegelt fájllal hajtja végre, megtalálhatja a %ERRORLEVEL% változó értékét. Ha 1-et ad vissza, akkor a exit kulcsszóval lépjen ki a szkriptből 0-val.

> (robocopy <options>) ^& IF %ERRORLEVEL% LEQ 1 exit 0

a kilépési kód módosítása egy PowerShell-szkriptben

ha a robocopy-t PowerShell-szkriptben hajtja végre, akkor a robocopy-t a Start-Process segítségével hívhatja meg a PassThru segítségével a létrehozott folyamat visszatéréséhez, a Wait pedig a robocopy befejezéséig. Ezután ellenőrizheti a ExitCode tulajdonság értékét 1. Ha a kilépési kód 1, akkor lépjen ki a PowerShell szkriptből 0-val a $host.SetShouldExit() használatával.

$exitCode = (Start-Process -FilePath 'robocopy' -ArgumentList '<option>' -PassThru -Wait).ExitCodeif ($exitCode -eq 1) { $host.SetShouldExit(0)}

gyakori hibák

ha több ezer fájlról van szó, akkor bizonyos problémákkal kell szembenéznie. Itt található a gyakori hibák lebontása, amelyekkel találkoztam

hiba Érvénytelen paraméter

ha hibát lát, amely hibát jelez érvénytelen paraméter, ez általában azt jelenti, hogy megpróbálta valahogy átadni az opciókat a robocopy-nak a szekvenciából. A robocopy érvénytelen paraméter 3 hiba a leggyakoribb, úgy tűnik.

gyakori oka annak, hogy ezt a hibát kapja, amikor megad egy forrás-vagy célkönyvtárat szóközökkel, és elfelejti idézőjelekkel körülvenni.

Robocopy példák

meg lehet építeni a saját húrok robocopy vagy tudod venni, amit mások megtanultak, és használja őket! Ebben a részben kitérek a felhasználási esetekre, hogyan lehet a robocopy-t különféle dolgok végrehajtására használni.

keresse meg a hálózati mappa könyvtárméretét

közreműködő: northendtroooper (Reddit)

> robocopy "\MACHINE\fileshare" c:\dummy /l /xj /e /nfl /ndl /njh /r:0 /mt:64

gyorsan törölje a mappa tartalmát (figyelmen kívül hagyva az almappák engedélyeit)

közreműködő: pizzasteveo (Reddit)

> robocopy c:\dummy c:\foldertodelete /MIR

nagy fájlmigrációk végrehajtása

közreműködő: @Mysnozzberries (Twitter)

ennek a kódrészletnek az a célja, hogy az összes fájl tulajdonjogát visszaadja a rendszergazdáknak. Ezután hozzáadunk egy explicit ACE-t az adminisztrátorok csoportjához, hogy minden objektumot rekurzívan ellenőrizhessünk, annak ellenére, hogy örökséget is beállítunk.

végül egy teljes robocopy másolatot készítünk Dacl-ekkel a rendeltetési helyre a log segítségével. A naplót ezután felül lehet vizsgálni további engedélyezési problémák vagy csak fájlzárak esetén, és egy másik delta szinkronizálás később elvégezhető.

> takeown /F .\test /R /A /D Y> icacls .\test /grant "Administrators":(OI)(CI)F /T> robocopy .\test .\test2 /E /SEC /FP /V /LOG:.\temp.log

rekurzívan kényszerítse a rendszergazdák csoportját az összes fájl és könyvtár tulajdonosaként. Lehet ezt megkerülni, de ez a legnehezebb kezes megközelítés, és általában a leggyorsabb.

> takeown /F .\test /R /A /D Y

miután mi vagyunk a tulajdonos, minden objektumhoz új ászot kényszeríthetünk a DACL-be. Ez a rendszergazdák számára teljes ellenőrzést biztosít az öröklődés engedélyezve és rekurzívan az útvonalon keresztül.

ennek az örökléssel történő gyökérbe állítása kiterjedne a környezetre, de ha egy részvénynek teljes irányítással rendelkezik az alkotó tulajdonosa (ami sajnos még a Microsoft ajánlása is olyan dolgokra, mint a fájl felhasználói profil üzletek), a felhasználó letilthatja az öröklést vagy eltávolíthatja az ászokat saját belátása szerint. Tehát a nehéz kéz általában a leggyorsabb javítás.

> icacls .\test /grant "Administrators":(OI)(CI)F /T

miután megváltoztattuk a fájlok többségének Dacl-jét, megpróbáljuk másolni a fájlokat egy új helyre, ami gyakori a fájlmegosztás migrációinál. Ehhez rekurzív módon lemásoljuk az elemeket, és a /SEC kapcsolóval átmásoljuk az adatokat/attribútumokat/időbélyegeket/Dacl-eket is.

ezután a műveletet teljes útvonalakkal és az összes objektumra (/V részletes kapcsoló) naplóba rögzítjük, így kijavíthatjuk a hibák <5% – át, amelyek általában az elérési út hosszához vagy a fájlzárhoz kapcsolódnak, és részletesebbek lesznek.

> robocopy .\test .\test2 /E /SEC /FP /V /LOG:.\temp.log

ez egy egyszerű keret a fájlmegosztás migrációjának kezelésére, minimális hatással a felhasználói élményre. Javítja az adatok feletti ellenőrzést is. Ha egy ügyfél erős Adatkezelési gyakorlattal rendelkezik, ahol a tulajdonjogot gyermekmappák szintjén megfelelően kezelik, ez bonyolultabb vitává válik, de a legtöbb ügyfél szerencsésnek tartja, hogy csak öröklési és csoportalapú ászokat használ, tehát ez a leggyakoribb helyzet és javítás, ahonnan indulunk.

Robocopy alternatívák

a Robocopy egy fantasztikus eszköz, de olyan sok más hasonló eszköz is érdekes lehet.

  • xxcopy – hasonló parancssori segédprogram rengeteg opcióval.
  • Copy-Item PowerShell parancsmag – közel sem olyan kiemelt, de sokkal egyszerűbb.
  • TreeSize – GUI és scriptable segédprogram mappainformációk kereséséhez.

összefoglaló

a Robocopy kiváló eszköz nagy fájlok másolására. Akár adatmigrációt végez, akár a mappákat szinkronban tartja, vagy egyszerűen csak gyors módra van szüksége a fájlok pontos másolásához, a robocopy nagyszerű választás.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.