Kā kopēt vai pārvietot failus programmā PowerShell

2021. gada 15. maijs 1201 Skati

Vai domājat, kā kopēt vai pārvietot failus, izmantojot PowerShell?





Šī S zona māca, kā izmantot PowerShell, lai kopētu failu Get-ChildItem un Vienuma kopēšana Cmdlets. Rokasgrāmata aptver trīs veidus, kā kopēt failus, izmantojot PowerShell.



Visbeidzot, jūs arī uzzināsit, kā pārvietot failus, izmantojot PowerShell. Atšķirībā no faila kopēšanas, pārvietojot failu, fails tiek izdzēsts no tā avota.

Pārlūkojiet ziņu tēmas



Kā kopēt vienu failu, izmantojot PowerShell

Kā kopēt vienu failu, izmantojot PowerShell

Šajā pirmajā sadaļā es jums iemācīšu, kā kopēt vienu failu, izmantojot PowerShell. Neatkarīgi no tā, vai kopējat vienu failu vai visus mapē esošos failus, komandai PowerShell ir 2 daļas.



Komandas pirmajā daļā jūs izmantojat Get-ChildItem Cmdlet uz sarakstu fails. Tad tu caurule izlaide Get-ChildItem komandai Vienuma kopēšana Cmdlet.

Kā uzskaitīt failu ar Get-ChildItem

Kā jau minēju šīs sadaļas ievadā, pirms faila kopēšanas ar PowerShell, vispirms tas ir jādara sarakstu to ar Get-ChildItem .



Šajā piemērā es vēlos kopēt failu ar nosaukumu Byte Count Tool no tā pašreizējās mapes uz D:G-DriveWork ToolsProducts Portal 2.



Kā kopēt vienu failu, izmantojot PowerShell

Lai uzskaitītu teksta failu, es izpildīšu tālāk norādīto komandu:

|_+_|

Ātrākais veids, kā palaist komandu, ir novietot PowerShell uzvedni blakus mapei ar failu. Pēc tam ievadiet Get-ChildItem PowerShell uzvednē — nospiediet atstarpes taustiņu, lai pievienotu atstarpi.

mega bezsaistes krātuve ir pilna

Pēc tam velciet failu no mapes uz PowerShell uzvedni.

Visbeidzot, lai uzskaitītu faila rekvizītus, kad ir atvērta PowerShell uzvedne, nospiediet ievadīšanas taustiņu.

Kā cauruļu izvadi Get-ChildItem Uz Vienuma kopēšana

Kad esat uzskaitījis kopējamā faila rekvizītus, ievadiet to uz Vienuma kopēšana . Pēc tam uz Vienuma kopēšana komandas daļu, norādiet mapi, kurā vēlaties kopēt failu.

Šeit ir komanda PowerShell, lai kopētu failu:

|_+_| Es pievienoju pēdiņas ap mapes ceļu, jo tajā ir atstarpes.

Nospiežot enter, komanda tiks izpildīta – fails tiks kopēts uz norādīto adresātu

kā atinstalēt jauktās realitātes portālu

Kā kopēt visus failu tipus mapē, izmantojot PowerShell

Kā kopēt visus failu tipus mapē, izmantojot PowerShell

Šīs rokasgrāmatas pēdējā sadaļā es parādīju, kā kopēt vienu failu, izmantojot PowerShell. Tomēr var būt situācijas, kad mapē ir jākopē visi failu tipi.

Šajā sadaļā jūs uzzināsit, kā kopēt visus failus ar noteiktu faila paplašinājumu no mapes uz citu mapi. Piemēram, iespējams, vēlēsities kopēt visus failus ar .log faila paplašinājumu no C:Windows uz citu mapi.

Šis process ir līdzīgs viena faila kopēšanai, taču tam ir nepieciešamas papildu darbības. Konkrēti, lai ar PowerShell kopētu vairāk nekā vienu failu, mums ir jāizveido vienkāršs skripts.

Pirmā skripta daļa ietver izmantošanu Get-ChildItem Cmdlet, lai uzskaitītu failus, kurus vēlaties kopēt. Pēc tam skripta otrajā daļā izmantosit Katram cilpa, lai atkārtotu failu sarakstu.

Visbeidzot, ietvaros Katram cilpa, jūs iekļausiet Vienuma kopēšana Cmdlet, lai kopētu katru failu vajadzīgajā galamērķī.

Lai jums būtu viegli saprast vienkāršo PowerShell skriptu, kuru mēs gatavojamies izveidot, es sadalīšu šo sadaļu divās apakšsadaļās.

Kā uzskaitīt visus failu tipus ar Get-ChildItem

Šajā piemērā es vēlos kopēt visus failus ar .log faila paplašinājumu no C:Windows uz D:Log Files. Tomēr, kā jau minēts iepriekš, pirmais solis ir izmantot Get-ChildItem Cmdlet, lai uzskaitītu visus failus ar .log faila paplašinājumu.

Vēlreiz, lai jums būtu viegli saprast pēdējo komandu, sāksim no pamatiem. Pirmkārt, ļauj uzskaitīt visus avota mapē esošos failus un mapes ar tālāk norādīto komandu:

|_+_|

Pēdējā komanda parāda gan failus, gan mapes.

Kā kopēt visus failu tipus mapē, izmantojot PowerShell

Tomēr mēs vēlamies izmantot PowerShell, lai kopētu tikai failus ar .log faila paplašinājumu. Tātad, mēs pievienosim vēl vienu komandu, kas parādīs šos failus atsevišķi.

Vēlreiz apskatiet pēdējo ekrānuzņēmumu. Pēdējā kolonna saucas Vārds. Šis ir faila vai mapes nosaukums. Šo informāciju drīzumā izmantosim.

Lai sasniegtu šo mērķi, mēs ievadīsim Get-ChildItem C:Windows izvadi uz a Kur-Objekts komandu. Šeit ir komanda, kas veic šo triku.

|_+_| Vai atceraties, ka es teicu jums ņemt vērā kolonnu Name no Get-ChildItem C:Windows rezultāta? Programmā PowerShell jūs izmantojat $_. automātiskais mainīgais atsauces objektiem. Iepriekš minētajā komandā es teicu PowerShell parādīt tikai objektus ar nosaukumu, kas ietver “.log”. Visbeidzot, es ievadīju rezultātu Select-Object cmdlet un liku tai parādīt Pilnais vārds no faila. The Pilnais vārds ietver faila ceļu.

Šeit ir iepriekš minētās komandas rezultāts. Mēs esam novērsuši visu pārējo informāciju — tagad mums ir tikai tie faili, kas mums jākopē. Tomēr ar šo daļu mēs vēl neesam pabeiguši — pirms turpināt skripta izveides pēdējo daļu, mums ir jāpievieno vēl viens bits.

gpedit msc nav atrasts Windows 10

Tas ir, lai mainīgajam pievienotu pēdējo komandu - es izsaukšu mainīgo žurnālfaili . Šeit ir komanda, kas veic šo darbu.

|_+_|

Vienīgā atšķirība starp šo komandu un pēdējo ir $ logfiles = bits. Tas liek PowerShell saglabāt izvadi Get-ChildItem C:Windows | Kur-Object { $_.Name -like ‘*.log'} | Select-Object FullName – mainīgajā, ko sauc žurnālfaili .

Atšķirībā no pēdējās komandas, ja es tagad palaižu jaunāko komandu, tā nerādīs nekādus rezultātus. Iemesls tam ir tāds, ka izvade tagad tiek saglabāta mainīgajā, nevis tiek parādīta konsolē.

Kā kopēt vairākus failus, izmantojot PowerShell Katram cilpa

Šajā pēdējā mūsu skripta izveides daļā mēs iepazīstināsim ar maģisko Katrai cilpai . Ja vēlaties uzzināt vairāk par ForEach cilpu un tās sintaksi, noklikšķiniet uz ForEach cilpa .

Kopumā ForEach cilpas sintakse izskatās šādi:

|_+_|

Tātad, ja mēs to attiecinām uz mūsu situāciju — paturot prātā, ka ar PowerShell vēlamies kopēt visus failus ar paplašinājumu .log — mūsu komanda ForEach izskatīsies šādi:

|_+_|

Visbeidzot, ļauj apvienot šo pēdējo komandu ar Get-ChildItem no pēdējās sadaļas. Galīgais skripts izskatīsies šādi:

|_+_| Ņemiet vērā, kā es iekļāvu . Pilnais vārds ForEach cilpas daļā $logfiles. Tas ir tāpēc, ka komandas pirmajā daļā izmantoju komandu Select-Object cmdlet. Pievienojot šo bitu, tiek likvidēts kolonnas nosaukums. Pretējā gadījumā komanda atgriezīs kļūdas.

Ja kopējat iepriekš minētās komandas programmā PowerShell ISE un saglabājat to, jums ir jūsu skripts! Tomēr jūs joprojām varat palaist atsevišķas komandas, kā parādīts tālāk esošajā ekrānuzņēmumā.

Iepriekš minētā komanda tiek palaista, un PowerShell atgriežas savā uzvednē, it kā nekas nebūtu noticis. Tomēr, atverot mērķa mapi, kuru norādījāt komandas ForEach cilpas bitā, komanda PowerShell būtu nokopējusi failus — skatiet tālāk redzamo ekrānuzņēmumu.

Kā kopēt visus failu tipus mapē un visās apakšmapēs

Kā kopēt visus failu tipus mapē un visās apakšmapēs

Līdz šim šajā rokasgrāmatā ir aprakstītas darbības, lai kopētu vienu failu ar PowerShell. Turklāt ceļvedī ir aprakstītas arī darbības, lai kopētu vairākus failus no mapes.

Mēs esam apskatījuši dažas lieliskas PowerShell failu kopēšanas situācijas.

Tomēr ir situācijas, kad jums ir jākopē visi faili ar noteiktu faila paplašinājumu no mapes un visām tās apakšmapēm .

Ja es turpinu ar savu pēdējo piemēru, sakiet, ka vēlos kopēt visus failus ar .log faila paplašinājumu no C:Windows mapi un visas tās apakšmapes – es vienkārši modificēšu Get-ChildItem daļa no šīs komandas:

|_+_|

Lai iegūtu Get-ChildItem komandu, lai uzskaitītu visus failus ar .log faila paplašinājumu C:Windows un visas tās apakšmapes – pievienošu a Get-ChildItem izsaukts komandas parametrs Atkārtošanās .

Paturot to prātā, mana jaunā komanda tagad izskatīsies šādi:

kā nomainīt kurjera paziņojumu skaņu
|_+_|

Lai pārvietotu savu punktu mājās, es izpildīšu komandu Get-ChildItem bez $logfiles = bita. Komanda atgriež kļūdas, jo mēģinu piekļūt failiem, kuriem man nav atļaujas piekļūt.

Kā kopēt visus failu tipus mapē un visās apakšmapēs

Lai labotu šo kļūdu, ļaujiet man mēģināt atvērt PowerShell kā administratoram. Tagad, kad es palaižu to pašu komandu, tā atgriež dažus rezultātus.

Atšķirībā no pēdējās komandas, kas neietvēra Atkārtošanās parametru, šī komanda atgriež daudz vairāk failu. Tas ir tāpēc, ka komanda atgrieza visus failus augstākā līmeņa mapē, kā arī failus visās tās apakšmapēs.

Kā kopēt visus failu tipus mapē un visās apakšmapēs

Visbeidzot, lai kopētu visus mapē esošos failus un visas tās apakšmapes, izmantojot PowerShell, palaidiet komandu, kas ir līdzīga tālāk norādītajai komandai.

Atcerieties mainīt mapes daļas. Esmu treknrakstā avota un galamērķa mapes ceļus, lai jums būtu vieglāk tos pamanīt un mainīt uz savējiem. |_+_| Ja vēlaties saglabāt šo komandu programmā PowerShell ISE un palaist to kā skriptu, iespējams, vēlēsities komandai Get-ChildItem pievienot mainīgo ErrorAction. Izmantojot mainīgo ErrorAction, galīgais skripts izskatīsies šādi: |_+_|

Kā pārvietot failus programmā PowerShell

Papildus failu kopēšanai PowerShell var arī to darīt Pārvietot failus. Atšķirība ir tāda, ka, pārvietojot failu, tas tiek izdzēsts no tā avota mapes.

Tātad, ja failu kopēšana un pārvietošana ir aptuveni vienāda, tas nozīmē, ka varat izmantot tās pašas komandas, kuras esam izmantojuši šajā rokasgrāmatā ar nelielām izmaiņām.

Lai to atvieglotu, esmu uzskaitījis visas šajā rokasgrāmatā līdz šim aprakstītās komandas. Pēc tam katrai komandai es sniedzu pārvietot failu komandas ekvivalents.

Pirms turpinu, ir svarīgi pieminēt, ka vienīgā atšķirība komandās ir kopēšanas vienuma bits. Tā vietā, lai izmantotu Vienuma kopēšana lai kopētu failu, lai pārvietotu failu, jūs izmantosit Pārvietot vienumu .

Kā pārvietot vienu failu, izmantojot PowerShell

Komanda, lai kopētu vienu failu programmā PowerShell, ir šāda:

|_+_|

Tomēr, lai pārvietotu failu, izmantojiet šo komandu:

|_+_|

Kā pārvietot visus failu tipus mapē, izmantojot PowerShell

Kā jau minēts iepriekš, šeit ir komandas, lai kopētu visus failu tipus mapē.

|_+_|

No otras puses, lai pārvietotu failus, izmantojiet šo komandu.

nova launcher akumulatora izlāde
NE palaidiet tālāk norādīto komandu, nemainot C:Windows daļa. Ja palaižat komandu, svarīgi operētājsistēmas faili var tikt pārvietoti un jūsu dators var kļūt nestabils. Šīs komandas ir paredzētas tikai ilustratīviem nolūkiem! |_+_|

Kā pārvietot visus failu tipus mapē un visas apakšmapes

Visbeidzot, tālāk norādītās komandas kopē visus failus avota mapē un visās tās apakšmapēs.

|_+_|

Lai pārvietotu failus, izmantojiet šo komandu.

|_+_|

Ceru, ka šajā rokasgrāmatā aprakstītās metodes failu kopēšanai un pārvietošanai, izmantojot PowerShell, jums bija noderīgas.

Ja jums tas šķita noderīgi, lūdzu, balsojiet uz Vai šī ziņa bija noderīgs jautājums tālāk.

Tomēr, ja neviena no metodēm jums nedarbojās vai jums bija nepieciešams kaut kas cits, nevis apspriestās metodes, noklikšķiniet uz Vai šī ziņa bija noderīgs jautājums tālāk. Pēc tam, lūdzu, sniedziet mums papildu informāciju. Mēs pārskatām mūsu lasītāju atsauksmes un atjauninām savus ceļvežus, lai pastāvīgi atbilstu jūsu vajadzībām.

Varat arī uzdot jautājumu, atstāt komentāru vai sniegt atsauksmes, izmantojot veidlapu Atstājiet atbildi, kas atrodas šīs lapas beigās.

Visbeidzot, lai iegūtu vairāk PowerShell tehnoloģiju S zonu, apmeklējiet mūsu Windows PowerShell pamācību lapu. Iespējams, jums ļoti noderēs arī mūsu lapa Work from Home.