Cum să copiați sau să mutați fișiere în PowerShell

15 mai 2021 1201 Vizualizări

Vă întrebați cum să copiați sau să mutați fișiere cu PowerShell?





Această zonă S vă învață cum să utilizați PowerShell pentru a copia un fișier cu Get-ChildItem și Element de copiere Cmdleturi. Ghidul acoperă trei moduri de a copia fișiere cu PowerShell.



În cele din urmă, veți învăța și cum să mutați fișiere cu PowerShell. Spre deosebire de copierea unui fișier, atunci când mutați un fișier, acesta este șters din sursă.

Răsfoiți subiectele postărilor



Cum să copiați un singur fișier cu PowerShell

Cum să copiați un singur fișier cu PowerShell

În această primă secțiune, vă voi învăța cum să copiați un singur fișier cu PowerShell. Indiferent dacă copiați un singur fișier sau toate fișierele dintr-un folder - comanda PowerShell are 2 părți.



În prima parte a comenzii, utilizați Get-ChildItem Cmdlet la listă fișierul. Atunci tu teava ieșirea lui Get-ChildItem comanda către Element de copiere Cmdlet.

Cum să listați un fișier cu Get-ChildItem

După cum am menționat în introducerea acestei secțiuni, înainte de a copia un fișier cu PowerShell, trebuie mai întâi să faceți acest lucru listă ea cu Get-ChildItem .



lg g4 bypass google

În acest exemplu, vreau să copiez fișierul numit Byte Count Tool, din folderul actual în D:G-DriveWork ToolsProducts Portal 2.



Cum să copiați un singur fișier cu PowerShell

Pentru a lista fișierul text, voi rula comanda de mai jos:

|_+_|

Cea mai rapidă modalitate de a rula comanda este să plasați un prompt PowerShell alături de folderul cu fișierul. Apoi, intra Get-ChildItem în promptul PowerShell – apăsați tasta barei de spațiu pentru a adăuga un spațiu.

Apoi, trageți fișierul din folder în promptul PowerShell.

În cele din urmă, pentru a lista proprietățile fișierului, cu promptul PowerShell deschis, apăsați tasta Enter.

Cum să conductați ieșirea Get-ChildItem La Element de copiere

După ce ați listat proprietățile fișierului pe care doriți să-l copiați, trimiteți-l către Element de copiere . Apoi, pe Element de copiere parte a comenzii, specificați folderul în care doriți să copiați fișierul.

Iată comanda PowerShell pentru a copia un fișier:

|_+_| Am adăugat ghilimele în jurul căii folderului, deoarece are spații între ele.

Când apăsați enter, comanda se va executa - fișierul va fi copiat la destinația specificată

Cum să copiați toate tipurile de fișiere într-un folder cu PowerShell

Cum să copiați toate tipurile de fișiere într-un folder cu PowerShell

În ultima secțiune a acestui ghid, v-am arătat cum să copiați un singur fișier cu PowerShell. Cu toate acestea, pot exista situații în care trebuie să copiați toate tipurile de fișiere într-un folder.

În această secțiune, veți învăța cum să copiați toate fișierele cu o anumită extensie de fișier dintr-un folder în alt folder. De exemplu, poate doriți să copiați toate fișierele cu extensia de fișier .log din C:Windows într-un alt folder.

utilizați chromecastul ca monitor al doilea Mac

Acest proces este similar cu copierea unui singur fișier, dar necesită pași suplimentari. Mai exact, pentru a copia mai mult de un fișier cu PowerShell, trebuie să creăm un script simplu.

Prima parte a script-ului implică utilizarea Get-ChildItem Cmdlet pentru a lista fișierele pe care doriți să le copiați. Apoi, în a doua parte a scriptului, veți folosi Pentru fiecare buclă pentru a itera prin lista de fișiere.

În cele din urmă, în cadrul Pentru fiecare buclă, veți include Element de copiere Cmdlet pentru a copia fiecare fișier în destinația dorită.

Pentru a vă facilita înțelegerea scriptului PowerShell simplu pe care urmează să îl creăm, voi împărți această secțiune în două sub-secțiuni.

Cum să enumerați toate tipurile de fișiere cu Get-ChildItem

În acest exemplu, vreau să copiez toate fișierele cu extensia de fișier .log din C:Windows în D:Log Files. Cu toate acestea, după cum sa sugerat deja mai sus, primul pas este să utilizați Get-ChildItem Cmdlet pentru a lista toate fișierele cu extensia de fișier .log.

Încă o dată, pentru a vă facilita înțelegerea comenzii finale, să începem de la elementele de bază. În primul rând, să listăm toate fișierele și folderele din folderul sursă - cu comanda de mai jos:

|_+_|

Ultima comandă afișează atât fișierele, cât și folderele.

Cum să copiați toate tipurile de fișiere într-un folder cu PowerShell

Cu toate acestea, dorim să folosim PowerShell pentru a copia numai fișiere cu extensia de fișier .log. Deci, vom adăuga un alt bit de comandă care va afișa singur aceste fișiere.

Aruncă o altă privire la ultima captură de ecran. Ultima coloană se numește Nume. Acesta este numele fișierului sau folderului. Vom folosi aceste informații în curând.

Pentru a atinge acest obiectiv, vom canaliza ieșirea Get-ChildItem C:Windows către a Unde-Obiect comanda. Iată comanda care face acest truc.

|_+_| Vă amintiți că v-am spus să luați notă de coloana Nume din rezultatul Get-ChildItem C:Windows? În PowerShell, utilizați $_. variabilă automată pentru a face referire la obiecte. În comanda de mai sus, i-am spus PowerShell să afișeze numai obiecte cu un nume care include „.log”. În cele din urmă, am transmis rezultatul către cmdlet-ul Select-Object și i-am spus să afișeze Numele complet a dosarului. The Numele complet include calea fișierului.

Iată rezultatul comenzii de mai sus. Am eliminat toate celelalte informații – acum avem doar fișierele pe care trebuie să le copiam. Totuși, nu am terminat cu această parte – înainte de a trece la ultima parte a creării scriptului, trebuie să mai adăugăm un bit.

Acest bit este să adăugați ultima comandă la o variabilă - voi apela variabila fișiere jurnal . Iată comanda care face treaba respectivă.

|_+_|

Singura diferență dintre această comandă și ultima este $logfiles = bit. Acest lucru îi spune lui PowerShell să salveze rezultatul Get-ChildItem C:Windows | Unde-Obiect { $_.Nume -cum ar fi „*.log” } | Select-Object FullName – într-o variabilă numită fișiere jurnal .

Spre deosebire de ultima comandă, dacă acum rulez cea mai recentă comandă, aceasta nu va afișa niciun rezultat. Motivul pentru aceasta este că rezultatul este acum salvat în variabilă în loc să o afișeze pe consolă.

vrăjitorul nu se instalează

Cum să copiați mai multe fișiere cu PowerShell Pentru fiecare buclă

În această ultimă parte a creării scenariului nostru, vom introduce magicul Pentru fiecare buclă . Dacă doriți să citiți mai multe despre bucla ForEach și sintaxa acesteia, faceți clic pe bucla ForEach .

În general, sintaxa unei bucle ForEach arată astfel:

|_+_|

Deci, dacă aplicăm acest lucru situației noastre – ținând cont că dorim să copiem toate fișierele cu extensia .log cu PowerShell – comanda noastră ForEach va arăta astfel:

|_+_|

În cele din urmă, să combinăm această ultimă comandă cu Get-ChildItem din ultima secțiune. Scriptul final va arăta astfel:

|_+_| Observați cum am inclus. Numele complet în partea $logfiles a buclei ForEach. Acest lucru se datorează faptului că am folosit cmdletul Select-Object în prima parte a comenzii. Adăugarea acestui bit elimină numele coloanei. În caz contrar, comanda va returna erori.

Dacă copiați comenzile de mai sus în PowerShell ISE și le salvați, aveți scriptul dvs.! Cu toate acestea, puteți executa în continuare comenzile individuale, așa cum se arată în captura de ecran de mai jos.

Comanda de mai sus rulează și PowerShell revine la promptul său ca și cum nimic nu s-ar fi întâmplat. Cu toate acestea, când deschideți folderul de destinație pe care l-ați specificat în bitul de buclă ForEach al comenzii, comanda PowerShell ar fi copiat fișierele - vedeți captura de ecran de mai jos...

Cum să copiați toate tipurile de fișiere într-un folder și toate subdosarele

Cum să copiați toate tipurile de fișiere într-un folder și toate subdosarele

Până acum, acest ghid a acoperit pașii pentru a copia un singur fișier cu PowerShell. În plus, ghidul a acoperit și pașii pentru a copia mai multe fișiere dintr-un folder.

Am acoperit câteva situații grozave de copiere a fișierelor PowerShell.

Cu toate acestea, există situații în care trebuie să copiați toate fișierele cu o anumită extensie de fișier dintr-un folder și toate subdirectoarele sale .

telefonul este conectat la wifi dar

Dacă continui cu ultimul meu exemplu, spune că vreau să copiez toate fișierele cu extensia de fișier .log din C:Windows folderul și toate subfolderele sale – voi modifica pur și simplu Get-ChildItem parte a acestei comenzi:

|_+_|

Pentru a obține Get-ChildItem comandă pentru a lista toate fișierele cu extensia de fișier .log în C:Windows și toate subfolderele sale – voi adăuga un Get-ChildItem parametrul de comandă numit Recurs .

Având în vedere acest lucru, noua mea comandă va arăta acum astfel:

|_+_|

Pentru a conduce punctul meu acasă, voi rula comanda Get-ChildItem fără $logfiles = bit. Comanda returnează erori deoarece încerc să accesez fișiere pe care nu am permisiunea să le accesez.

Cum să copiați toate tipurile de fișiere într-un folder și toate subdosarele

Pentru a remedia această eroare, permiteți-mi să încerc să deschid PowerShell ca administrator. Acum, când rulez aceeași comandă, returnează niște rezultate.

Spre deosebire de ultima comandă care nu includea Recurs parametru, această comandă returnează mult mai multe fișiere. Acest lucru se datorează faptului că comanda a returnat toate fișierele din folderul de nivel superior, precum și fișierele din toate subdirectoarele sale.

cum se folosește foldermount
Cum să copiați toate tipurile de fișiere într-un folder și toate subdosarele

În cele din urmă, pentru a copia toate fișierele dintr-un folder și toate subfolderele acestuia cu PowerShell, rulați o comandă similară cu comanda de mai jos.

Nu uitați să schimbați părțile folderului. Am îngroșat căile folderelor sursă și destinație pentru a vă facilita identificarea și schimbarea lor în ale dvs. |_+_| Dacă doriți să salvați această comandă în PowerShell ISE și să o rulați ca script, poate doriți să adăugați variabila ErrorAction la comanda Get-ChildItem. Cu variabila ErrorAction, scriptul final va arăta astfel: |_+_|

Cum să mutați fișiere în PowerShell

În afară de Copierea fișierelor, PowerShell poate și Mișcare fișiere. Diferența este că atunci când mutați un fișier, acesta este șters din folderul sursă.

Deci, dacă copierea și mutarea fișierelor sunt aproximativ aceleași, înseamnă că puteți folosi aceleași comenzi pe care le-am folosit în acest ghid, cu o ușoară modificare.

Pentru a fi ușor, am enumerat toate comenzile acoperite în acest ghid până acum. Apoi, pentru fiecare comandă, ofer mutați fișierul echivalentul comenzii.

Înainte de a continua, este important să menționez că singura diferență între comenzi este bitul Copy-Item. În loc de a folosi Element de copiere pentru a copia un fișier, pentru a muta un fișier, vei folosi Mutare-Element .

Cum să mutați un singur fișier cu PowerShell

Comanda pentru a copia un singur fișier în PowerShell este:

|_+_|

Cu toate acestea, pentru a muta fișierul, utilizați în schimb această comandă:

|_+_|

Cum să mutați toate tipurile de fișiere într-un folder cu PowerShell

După cum sa discutat deja mai sus, iată comenzile pentru a copia toate tipurile de fișiere într-un folder.

|_+_|

Pe de altă parte, pentru a muta fișierele, utilizați în schimb această comandă.

NU FACE rulați comanda de mai jos fără a modifica C:Windows parte. Dacă executați comanda, fișierele importante ale sistemului de operare pot fi mutate și computerul poate deveni instabil. Aceste comenzi au doar scop ilustrativ! |_+_|

Cum să mutați toate tipurile de fișiere într-un folder și toate subdosarele

În cele din urmă, comenzile de mai jos copiază toate fișierele din folderul sursă și toate subdirectoarele acestuia.

|_+_|

Pentru a muta fișierele, utilizați în schimb această comandă.

|_+_|

Sper că ați găsit utile metodele de a copia și muta fișiere cu PowerShell discutate în acest ghid.

Dacă vi s-a părut util, vă rugăm să votați da la întrebarea A fost utilă această postare de mai jos.

Cu toate acestea, dacă niciuna dintre metode nu a funcționat pentru dvs. sau aveți nevoie de altceva decât metodele discutate, faceți clic Nu la întrebarea A fost utilă această postare de mai jos. Apoi, vă rugăm să ne furnizați detalii suplimentare. Analizăm feedback-ul cititorilor noștri și ne actualizăm ghidurile pentru a vă satisface în mod constant nevoile.

Alternativ, puteți pune o întrebare, lăsa un comentariu sau oferi feedback cu formularul Lăsați un răspuns aflat la sfârșitul acestei pagini.

În cele din urmă, pentru mai multe zone PowerShell tech S, vizitați pagina noastră de ghid pentru Windows PowerShell. De asemenea, s-ar putea să găsească foarte utilă pagina noastră de lucru de acasă.