Kako kopirati ali premakniti datoteke v PowerShell

15. maja 2021 1201 Pogledi

Se sprašujete, kako kopirati ali premakniti datoteke s PowerShell?





To območje S vas uči, kako uporabljati PowerShell za kopiranje datoteke Get-ChildItem in Copy-Item Ukaznice. Vodnik zajema tri načine kopiranja datotek s PowerShell.



Končno se boste naučili tudi premikati datoteke s PowerShell. Za razliko od kopiranja datoteke, ko datoteko premaknete, se datoteka izbriše iz vira.

Brskajte po temah objav



Kako kopirati eno datoteko s PowerShell

Kako kopirati eno datoteko s PowerShell

V tem prvem razdelku vas bom naučil, kako kopirati eno datoteko s PowerShell. Ne glede na to, ali kopirate eno datoteko ali vse datoteke v mapi – ukaz PowerShell ima 2 dela.



V prvem delu ukaza uporabite Get-ChildItem Cmdlet za seznam datoteka. Nato ti cev izhod Get-ChildItem ukaz za Copy-Item Cmdlet.

Kako prikazati datoteko z Get-ChildItem

Kot sem omenil v uvodu tega razdelka, morate pred kopiranjem datoteke s PowerShellom najprej seznam to z Get-ChildItem .



V tem primeru želim kopirati datoteko z imenom Byte Count Tool iz njene trenutne mape v D:G-DriveWork ToolsProducts Portal 2.



Kako kopirati eno datoteko s PowerShell

Za seznam besedilne datoteke bom zagnal spodnji ukaz:

|_+_|

Najhitrejši način za zagon ukaza je, da postavite poziv PowerShell poleg mape z datoteko. Nato vnesite Get-ChildItem v pozivu PowerShell – pritisnite preslednico, da dodate presledek.

Nato povlecite datoteko iz mape v poziv PowerShell.

Nazadnje, če želite prikazati lastnosti datoteke, pri odprtem pozivu PowerShell pritisnite tipko enter.

Kako določiti izhod Get-ChildItem Za Copy-Item

Ko navedete lastnosti datoteke, ki jo želite kopirati, jo usmerite v datoteko Copy-Item . Nato na Copy-Item del ukaza določite mapo, v katero želite kopirati datoteko.

Tukaj je ukaz PowerShell za kopiranje datoteke:

|_+_| Dodal sem narekovaje okoli poti mape, ker ima vmes presledke.

Ko pritisnete enter, se ukaz izvede – datoteka bo kopirana na določeno destinacijo

Kako kopirati vse vrste datotek v mapo s PowerShell

Kako kopirati vse vrste datotek v mapo s PowerShell

V zadnjem razdelku tega priročnika sem vam pokazal, kako kopirati eno datoteko s PowerShell. Vendar pa se lahko zgodi, da boste morali kopirati vse vrste datotek v mapo.

V tem razdelku se boste naučili, kako kopirati vse datoteke z določeno končnico datoteke iz mape v drugo mapo. Morda boste želeli na primer kopirati vse datoteke s pripono datoteke .log iz C:Windows v drugo mapo.

gcam za oneplus 6t

Ta postopek je podoben kopiranju ene datoteke, vendar zahteva dodatne korake. Natančneje, za kopiranje več kot ene datoteke s PowerShell, moramo ustvariti preprost skript.

Prvi del skripta vključuje uporabo Get-ChildItem Cmdlet za seznam datotek, ki jih želite kopirati. Nato boste v drugem delu skripta uporabili Za vsakogar zanko za ponavljanje po seznamu datotek.

Končno, znotraj Za vsakogar zanko, boste vključili Copy-Item Cmdlet za kopiranje vsake datoteke na želeni cilj.

Da bi vam olajšal razumevanje preprostega skripta PowerShell, ki ga bomo ustvarili, bom ta razdelek razdelil na dva pododdelka.

Kako prikazati vse vrste datotek z Get-ChildItem

V tem primeru želim kopirati vse datoteke s pripono datoteke .log iz C:Windows v D:Log Files. Vendar, kot je bilo že nakazano zgoraj, je prvi korak uporaba Get-ChildItem Cmdlet za seznam vseh datotek s pripono datoteke .log.

Še enkrat, da bi vam olajšali razumevanje končnega ukaza, začnimo od osnov. Najprej navedemo vse datoteke in mape v izvorni mapi - s spodnjim ukazom:

|_+_|

Zadnji ukaz prikaže datoteke in mape.

Kako kopirati vse vrste datotek v mapo s PowerShell

Vendar pa želimo uporabiti PowerShell za kopiranje samo datotek s pripono datoteke .log. Zato bomo dodali še en del ukaza, ki bo prikazal te datoteke same.

Oglejte si še zadnji posnetek zaslona. Zadnji stolpec se imenuje Ime. To je ime datoteke ali mape. Te podatke bomo uporabili v kratkem.

Da bi dosegli ta cilj, bomo izhod Get-ChildItem C:Windows preusmerili na Kam-predmet ukaz. Tukaj je ukaz, ki naredi ta trik.

|_+_| Se spomnite, da sem vam rekel, da upoštevate stolpec Ime iz rezultata Get-ChildItem C:Windows? V PowerShell uporabljate $_. avtomatska spremenljivka za referenčne objekte. V zgornjem ukazu sem PowerShellu rekel, naj prikaže samo predmete z imenom, ki vključuje '.log'. Končno sem rezultat posredoval ukazu Select-Object Cmdlet in mu rekel, naj prikaže Polno ime datoteke. The Polno ime vključuje pot datoteke.

Tukaj je rezultat zgornjega ukaza. Vse druge informacije smo odstranili – zdaj imamo samo datoteke, ki jih moramo kopirati. S tem delom pa še nismo končali – preden nadaljujete z zadnjim delom ustvarjanja skripta, moramo dodati še en bit.

Ta bit je dodati zadnji ukaz spremenljivki - spremenljivko bom poklical dnevniške datoteke . Tukaj je ukaz, ki opravi to nalogo.

|_+_|

Edina razlika med tem ukazom in zadnjim je $logfiles = bit. To pove PowerShellu, da shrani izhod Get-ChildItem C:Windows | Kje-predmet { $_.Name -kot '*.log' } | Izberite polno ime predmeta – v spremenljivki, ki se imenuje dnevniške datoteke .

Za razliko od zadnjega ukaza, če zdaj zaženem zadnji ukaz, ne bo prikazal nobenega rezultata. Razlog za to je, da je izhod zdaj shranjen v spremenljivko, namesto da bi bil prikazan na konzoli.

Kako kopirati več datotek s PowerShell Za vsakogar zanka

V tem zadnjem delu ustvarjanja našega scenarija bomo predstavili magično Zanka ForEach . Če želite prebrati več o zanki ForEach in njeni sintaksi, kliknite zanko ForEach .

Na splošno je sintaksa zanke ForEach videti tako:

|_+_|

Torej, če to uporabimo za našo situacijo – ob upoštevanju, da želimo kopirati vse datoteke s pripono .log s PowerShellom – bo naš ukaz ForEach videti takole:

|_+_|

Končno, združimo ta zadnji ukaz z Get-ChildItem iz zadnjega razdelka. Končni skript bo videti takole:

|_+_| Upoštevajte, kako sem vključil . Polno ime v delu $logfiles zanke ForEach. To je zato, ker sem v prvem delu ukaza uporabil ukazni ukaz Select-Object. Če dodate ta bit, odstranite ime stolpca. V nasprotnem primeru bo ukaz vrnil napake.

Če kopirate zgornje ukaze v PowerShell ISE in jih shranite, imate svoj skript! Vendar pa lahko še vedno izvajate posamezne ukaze, kot je prikazano na spodnjem posnetku zaslona.

Zgornji ukaz se zažene in PowerShell se vrne v svoj poziv, kot da se nič ni zgodilo. Vendar, ko odprete ciljno mapo, ki ste jo navedli v bitu zanke ForEach ukaza, bi ukaz PowerShell kopiral datoteke - glejte spodnji posnetek zaslona ...

Kako kopirati vse vrste datotek v mapo in vse podmape

Kako kopirati vse vrste datotek v mapo in vse podmape

Doslej je ta vodnik pokrival korake za kopiranje ene datoteke s PowerShell. Poleg tega vodnik zajema tudi korake za kopiranje več datotek iz mape.

Pokrili smo nekaj odličnih situacij kopiranja datotek PowerShell.

Vendar pa obstajajo situacije, ko morate kopirati vse datoteke z določeno končnico datoteke iz mape in vseh njenih podmap .

Če nadaljujem s svojim zadnjim primerom, recimo, da želim kopirati vse datoteke s pripono datoteke .log C:Windows mapo in vse njene podmape – preprosto bom spremenil Get-ChildItem del tega ukaza:

|_+_|

Da bi dobili Get-ChildItem ukaz za seznam vseh datotek s končnico datoteke .log v C:Windows in vse njegove podmape – dodal bom a Get-ChildItem ukazni parameter poklican Rekurzija .

S tem v mislih bo moj novi ukaz zdaj videti takole:

|_+_|

Da bi svojo poanto pripeljal domov, bom zagnal ukaz Get-ChildItem brez bita $logfiles =. Ukaz vrne napake, ker poskušam dostopati do datotek, do katerih nimam dovoljenja.

Kako kopirati vse vrste datotek v mapo in vse podmape

Če želite odpraviti to napako, naj poskusim odpreti PowerShell kot skrbnik. Zdaj, ko zaženem isti ukaz, vrne nekaj rezultatov.

Za razliko od zadnjega ukaza, ki ni vključeval Rekurzija parameter, ta ukaz vrne veliko več datotek. To je zato, ker je ukaz vrnil vse datoteke v mapi na najvišji ravni in datoteke v vseh njenih podmapah.

Kako kopirati vse vrste datotek v mapo in vse podmape

Nazadnje, če želite kopirati vse datoteke v mapi in vse njene podmape s PowerShellom, zaženite ukaz, podoben spodnjemu ukazu.

Ne pozabite spremeniti delov mape. Pot izvorne in ciljne mape sem poudaril, da jih boste lažje opazili in spremenili v svoje. |_+_| Če želite ta ukaz shraniti v PowerShell ISE in ga zagnati kot skript, boste morda želeli v ukaz Get-ChildItem dodati spremenljivko ErrorAction. S spremenljivko ErrorAction bo končni skript videti takole: |_+_|

Kako premakniti datoteke v PowerShell

Poleg kopiranja datotek lahko PowerShell tudi Premakni se datoteke. Razlika je v tem, da ko premaknete datoteko, se ta izbriše iz izvorne mape.

Torej, če sta kopiranje in premikanje datotek približno enaka, to pomeni, da lahko uporabite iste ukaze, ki smo jih uporabili v tem priročniku, z rahlo spremembo.

Da bi bilo lažje, sem naštel vse ukaze, ki so do zdaj obravnavani v tem priročniku. Nato za vsak ukaz zagotovim premakniti datoteko enakovreden ukazu.

Preden nadaljujem, je pomembno omeniti, da je edina razlika v ukazih bit Copy-Item. Namesto uporabe Copy-Item za kopiranje datoteke, za premikanje datoteke, boste uporabili Move-Item .

Kako premakniti eno datoteko s PowerShell

Ukaz za kopiranje ene datoteke v PowerShell je:

|_+_|

Če pa želite premakniti datoteko, namesto tega uporabite ta ukaz:

|_+_|

Kako premakniti vse vrste datotek v mapo s PowerShell

Kot smo že razpravljali zgoraj, so tukaj ukazi za kopiranje vseh vrst datotek v mapo.

|_+_|

Po drugi strani pa za premikanje datotek uporabite ta ukaz.

NE zaženite spodnji ukaz brez spreminjanja C:Windows del. Če zaženete ukaz, se lahko premaknejo pomembne datoteke operacijskega sistema in vaš računalnik postane nestabilen. Ti ukazi so samo za ponazoritev! |_+_|

Kako premakniti vse vrste datotek v mapi in vse podmape

Nazadnje spodnji ukazi kopirajo vse datoteke v izvorni mapi in vse njene podmape.

|_+_|

Za premikanje datotek uporabite ta ukaz.

|_+_|

Upam, da so vam bile v pomoč metode za kopiranje in premikanje datotek s PowerShell, opisane v tem priročniku.

Če se vam zdi v pomoč, vljudno glasujte da na spodnje vprašanje Ali je bila ta objava koristna.

Če pa vam nobena od metod ni delovala ali pa ste potrebovali kaj drugega kot obravnavane metode, kliknite št na spodnje vprašanje Ali je bila ta objava koristna. Nato nam vljudno posredujte dodatne podrobnosti. Pregledamo povratne informacije naših bralcev in posodabljamo naše vodnike, da bodo nenehno izpolnjevali vaše potrebe.

Lahko pa postavite vprašanje, pustite komentar ali pošljete povratne informacije z obrazcem za pustite odgovor, ki ga najdete na koncu te strani.

Nazadnje, za več PowerShell tech S con obiščite našo stran z navodili za Windows PowerShell. Morda vam bo v veliko pomoč tudi naša stran Delo od doma.