Ako kopírovať alebo presúvať súbory v PowerShell

15. mája 2021 1201 Názory

Zaujíma vás, ako kopírovať alebo presúvať súbory pomocou PowerShell?





Táto zóna S vás naučí, ako používať PowerShell na kopírovanie súboru Get-ChildItem a Copy-Item Cmdlets. Sprievodca obsahuje tri spôsoby kopírovania súborov pomocou prostredia PowerShell.



Nakoniec sa tiež dozviete, ako presúvať súbory pomocou PowerShell. Na rozdiel od kopírovania súboru, keď súbor presuniete, súbor sa odstráni zo zdroja.

Prehľadávať témy príspevkov



Ako skopírovať jeden súbor pomocou PowerShell

Ako skopírovať jeden súbor pomocou PowerShell

V tejto prvej časti vás naučím, ako skopírovať jeden súbor pomocou PowerShell. Či už kopírujete jeden súbor alebo všetky súbory v priečinku – príkaz PowerShell má 2 časti.



V prvej časti príkazu použijete Get-ChildItem Cmdlet pre zoznam súbor. Potom ty rúra výstup z Get-ChildItem príkaz na Copy-Item Cmdlet.

Ako vypísať súbor s Get-ChildItem

Ako som už spomenul v úvode tejto časti, pred skopírovaním súboru pomocou PowerShell musíte najprv urobiť zoznam to s Get-ChildItem .



V tomto príklade chcem skopírovať súbor s názvom Byte Count Tool z jeho aktuálneho priečinka do D:G-DriveWork ToolsProducts Portal 2.



Ako skopírovať jeden súbor pomocou PowerShell

Ak chcete zobraziť zoznam textového súboru, spustím nasledujúci príkaz:

|_+_|

Najrýchlejším spôsobom spustenia príkazu je umiestniť výzvu PowerShell vedľa priečinka so súborom. Potom zadajte Get-ChildItem vo výzve PowerShell – stlačením medzerníka pridajte medzeru.

Potom presuňte súbor z priečinka do výzvy PowerShell.

Nakoniec, ak chcete zobraziť vlastnosti súboru, s otvorenou výzvou prostredia PowerShell stlačte kláves enter.

Ako zostaviť výstup Get-ChildItem Komu Copy-Item

Akonáhle máte uvedené vlastnosti súboru, ktorý chcete skopírovať, presuňte ho do Copy-Item . Potom na Copy-Item časti príkazu zadajte priečinok, do ktorého chcete súbor skopírovať.

Tu je príkaz PowerShell na skopírovanie súboru:

|_+_| Okolo cesty k priečinku som pridal úvodzovky, pretože medzi nimi sú medzery.

Keď stlačíte enter, príkaz sa vykoná – súbor sa skopíruje na určené miesto

Ako skopírovať všetky typy súborov do priečinka pomocou PowerShell

Ako skopírovať všetky typy súborov do priečinka pomocou PowerShell

V poslednej časti tejto príručky som vám ukázal, ako skopírovať jeden súbor pomocou PowerShell. Môžu však nastať situácie, keď budete musieť skopírovať všetky typy súborov v priečinku.

V tejto časti sa dozviete, ako skopírovať všetky súbory s konkrétnou príponou súboru z priečinka do iného priečinka. Môžete napríklad chcieť skopírovať všetky súbory s príponou .log z C:Windows do iného priečinka.

Tento proces je podobný kopírovaniu jedného súboru, ale vyžaduje si ďalšie kroky. Konkrétne, ak chcete skopírovať viac ako jeden súbor pomocou PowerShell, musíme vytvoriť jednoduchý skript.

Prvá časť skriptu zahŕňa použitie Get-ChildItem cmdlet na zoznam súborov, ktoré chcete skopírovať. Potom v druhej časti skriptu použijete Pre každý slučku na iteráciu cez zoznam súborov.

Nakoniec v rámci Pre každý slučku, zahrniete Copy-Item Rutina na skopírovanie každého zo súborov do požadovaného cieľa.

Aby sme vám uľahčili pochopenie jednoduchého skriptu PowerShell, ktorý sa chystáme vytvoriť, rozdelím túto časť na dve podsekcie.

Ako vypísať všetky typy súborov pomocou Get-ChildItem

V tomto príklade chcem skopírovať všetky súbory s príponou .log z C:Windows do D:Log Files. Ako však už bolo naznačené vyššie, prvým krokom je použitie Get-ChildItem cmdlet na zobrazenie všetkých súborov s príponou .log.

Ešte raz, aby sme vám uľahčili pochopenie posledného príkazu, začnime od základov. Najprv vypíšte zoznam všetkých súborov a priečinkov v zdrojovom priečinku – pomocou príkazu nižšie:

|_+_|

Posledný príkaz zobrazí súbory aj priečinky.

Ako skopírovať všetky typy súborov do priečinka pomocou PowerShell

Chceme však použiť PowerShell na kopírovanie iba súborov s príponou .log. Takže pridáme ďalší kúsok príkazu, ktorý zobrazí tieto súbory samostatne.

služba avast zaberajúca disk
Pozrite sa ešte raz na poslednú snímku obrazovky. Posledný stĺpec sa nazýva Názov. Toto je názov súboru alebo priečinka. Tieto informácie čoskoro použijeme.

Na dosiahnutie tohto cieľa presunieme výstup Get-ChildItem C:Windows do a Kde-Objekt príkaz. Tu je príkaz, ktorý robí tento trik.

|_+_| Pamätáte si, že som vám povedal, aby ste si všimli stĺpec Name z výsledku Get-ChildItem C:Windows? V PowerShell použijete $_. automatická premenná na referenčné objekty. Vo vyššie uvedenom príkaze som povedal PowerShellu, aby zobrazoval iba objekty s názvom, ktorý obsahuje „.log“. Nakoniec som poslal výsledok do rutiny Select-Object Cmdlet a povedal som jej, aby zobrazila Celé meno súboru. The Celé meno obsahuje cestu k súboru.

Tu je výsledok vyššie uvedeného príkazu. Odstránili sme všetky ostatné informácie – teraz máme len súbory, ktoré potrebujeme skopírovať. S touto časťou sme však neskončili – predtým, ako prejdete k poslednej časti vytvárania skriptu, musíme pridať ešte jeden kúsok.

Tento bit je pridať posledný príkaz do premennej - zavolám premennú log súbory . Tu je príkaz, ktorý túto úlohu vykonáva.

|_+_|

Jediný rozdiel medzi týmto príkazom a posledným je $ logfiles = bit. Toto povie PowerShellu, aby uložil výstup Get-ChildItem C:Windows | Where-Object { $_.Name -like ‘*.log’ } | Select-Object FullName – v premennej tzv log súbory .

Na rozdiel od posledného príkazu, ak teraz spustím najnovší príkaz, nezobrazí sa žiadny výsledok. Dôvodom je, že výstup je teraz uložený v premennej namiesto toho, aby sa zobrazoval na konzole.

Ako kopírovať viacero súborov pomocou PowerShell Pre každý slučka

V tejto poslednej časti tvorby nášho scenára predstavíme magické Pre každú slučku . Ak si chcete prečítať viac o slučke ForEach a jej syntaxi, kliknite na položku ForEach loop .

Vo všeobecnosti syntax cyklu ForEach vyzerá takto:

|_+_|

Takže, ak to aplikujeme na našu situáciu – berúc do úvahy, že chceme skopírovať všetky súbory s príponou .log pomocou PowerShell – náš príkaz ForEach bude vyzerať takto:

|_+_|

Nakoniec skombinujme tento posledný príkaz s Get-ChildItem z poslednej sekcie. Finálny skript bude vyzerať takto:

|_+_| Všimnite si, ako som zahrnul . Celé meno v $logfiles časti cyklu ForEach. Je to preto, že som v prvej časti príkazu použil rutinu Select-Object Cmdlet. Pridaním tohto bitu sa odstráni názov stĺpca. V opačnom prípade príkaz vráti chyby.

Ak skopírujete vyššie uvedené príkazy do PowerShell ISE a uložíte ich, máte svoj skript! Stále však môžete spustiť jednotlivé príkazy, ako je znázornené na obrázku nižšie.

Vyššie uvedený príkaz sa spustí a PowerShell sa vráti na výzvu, ako keby sa nič nestalo. Keď však otvoríte cieľový priečinok, ktorý ste zadali v bite slučky ForEach príkazu, príkaz PowerShell by skopíroval súbory – pozri snímku obrazovky nižšie…

Ako skopírovať všetky typy súborov do priečinka a všetkých podpriečinkov

Ako skopírovať všetky typy súborov v priečinku a všetkých podpriečinkoch

Táto príručka zatiaľ obsahuje kroky na skopírovanie jedného súboru pomocou prostredia PowerShell. Okrem toho príručka obsahuje aj kroky na kopírovanie viacerých súborov z priečinka.

Pokryli sme niekoľko skvelých situácií pri kopírovaní súborov PowerShell.

Existujú však situácie, keď potrebujete skopírovať všetky súbory s konkrétnou príponou súboru z priečinka a všetkých jeho podpriečinkov .

Ak budem pokračovať v mojom poslednom príklade, povedzme, že chcem skopírovať všetky súbory s príponou .log z C:Windows priečinok a všetky jeho podpriečinky – jednoducho upravím Get-ChildItem časť tohto príkazu:

|_+_|

Ak chcete získať Get-ChildItem príkaz na vypísanie všetkých súborov s príponou .log C:Windows a všetky jeho podpriečinky – pridám a Get-ChildItem volaný parameter príkazu Rekurzia .

ako zmeniť Messenger oznámenia zvuk

S ohľadom na to bude môj nový príkaz teraz vyzerať takto:

|_+_|

Aby som svoj bod posunul domov, spustím príkaz Get-ChildItem bez $logfiles = bit. Príkaz vracia chyby, pretože sa pokúšam získať prístup k súborom, ku ktorým nemám povolenie.

Ako skopírovať všetky typy súborov v priečinku a všetkých podpriečinkoch

Ak chcete túto chybu opraviť, skúste otvoriť PowerShell ako správca. Teraz, keď spustím rovnaký príkaz, vráti nejaké výsledky.

Na rozdiel od posledného príkazu, ktorý neobsahoval Rekurzia parameter, tento príkaz vráti oveľa viac súborov. Dôvodom je to, že príkaz vrátil všetky súbory v priečinku najvyššej úrovne, ako aj súbory vo všetkých jeho podpriečinkoch.

Ako skopírovať všetky typy súborov v priečinku a všetkých podpriečinkoch

Nakoniec, ak chcete skopírovať všetky súbory v priečinku a všetky jeho podpriečinky pomocou PowerShell, spustite príkaz podobný príkazu nižšie.

Nezabudnite zmeniť časti priečinka. Zvýraznil som cesty zdrojového a cieľového priečinka, aby ste ich mohli ľahko nájsť a zmeniť na svoje. |_+_| Ak chcete uložiť tento príkaz v PowerShell ISE a spustiť ho ako skript, možno budete chcieť pridať premennú ErrorAction do príkazu Get-ChildItem. S premennou ErrorAction bude konečný skript vyzerať takto: |_+_|

Ako presúvať súbory v PowerShell

Okrem kopírovania súborov môže PowerShell tiež Pohybujte sa súbory. Rozdiel je v tom, že keď presuniete súbor, odstráni sa zo zdrojového priečinka.

Ak je teda kopírovanie a presúvanie súborov približne rovnaké, znamená to, že s miernou úpravou môžete použiť rovnaké príkazy, aké sme použili v tejto príručke.

Na uľahčenie uvádzam zoznam všetkých príkazov, ktoré táto príručka doteraz obsahuje. Potom pre každý príkaz poskytnem presunúť súbor ekvivalent príkazu.

Predtým, ako budem pokračovať, je dôležité spomenúť, že jediným rozdielom v príkazoch je bit Copy-Item. Namiesto použitia Copy-Item na kopírovanie súboru, na presun súboru, použijete Presunúť položku .

Ako presunúť jeden súbor pomocou PowerShell

Príkaz na kopírovanie jedného súboru v PowerShell je:

|_+_|

Ak však chcete súbor presunúť, použite tento príkaz:

|_+_|

Ako presunúť všetky typy súborov v priečinku pomocou PowerShell

Ako už bolo uvedené vyššie, tu sú príkazy na skopírovanie všetkých typov súborov v priečinku.

|_+_|

Na druhej strane, ak chcete presunúť súbory, použite tento príkaz.

NIE spustite nižšie uvedený príkaz bez úpravy C:Windows časť. Ak spustíte príkaz, dôležité súbory operačného systému sa môžu presunúť a váš počítač sa môže stať nestabilným. Tieto príkazy slúžia len na ilustračné účely! |_+_|

Ako presunúť všetky typy súborov v priečinku a všetkých podpriečinkoch

Nakoniec príkazy uvedené nižšie skopírujú všetky súbory v zdrojovom priečinku a všetkých jeho podpriečinkoch.

|_+_|

Ak chcete presunúť súbory, použite namiesto toho tento príkaz.

|_+_|

Dúfam, že vám boli užitočné metódy kopírovania a presúvania súborov pomocou PowerShell, o ktorých sa hovorí v tejto príručke.

Ak vám to pomohlo, zahlasujte Áno na otázku Bol tento príspevok užitočná nižšie.

Ak vám však žiadna z metód nefungovala alebo ste potrebovali niečo iné ako diskutované metódy, kliknite nie na otázku Bol tento príspevok užitočná nižšie. Potom nám láskavo poskytnite ďalšie podrobnosti. Kontrolujeme spätnú väzbu našich čitateľov a aktualizujeme našich sprievodcov, aby neustále vyhovovali vašim potrebám.

Prípadne môžete položiť otázku, zanechať komentár alebo poskytnúť spätnú väzbu pomocou formulára Zanechať odpoveď, ktorý nájdete na konci tejto stránky.

Nakoniec, ak chcete získať viac zón PowerShell tech S, navštívte našu stránku sprievodcu Windows PowerShell ako na to. Veľmi užitočná vám môže byť aj naša stránka Práca z domovskej stránky.