Fájlok, mappák másolása és mozgatása

A másolás és mozgatás elég hasonló művelet, amit a Copy-Item  és Move-Item  cmdletekkel végezhetünk el. Kezdjük egyszerűbb példákkal! Másolni akarok egy fájl egy másik mappába:

PS C:\> Copy-Item 'C:\PSKönyv\Normál fájl.txt' -Destination C:\PSKönyv\Célmappa

Látható, hogy elég ilyenkor a célmappát meghatározni, a fájl ugyanazzal a névvel másolódik az új célkönyvtárba. Különösebb kimenete nincs ennek a parancsnak, ha minden sikeres volt. Ha valami nem sikerül, akkor természetesen hibajelzést kapunk.

Ha a másolás során más nevet akarunk adni a fájlnak, akkor a –Destination paraméterként a teljes nevet adjuk meg, illetve ha visszajelzést is akarunk kapni, akkor használhatjuk a –PassThru kapcsolót:

PS C:\> Copy-Item 'C:\PSKönyv\Normál fájl.txt' -Destination C:\PSKönyv\Célmappa

\újnévvel.txt -PassThru

 

 

    Directory: C:\PSKönyv\Célmappa

 

 

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---       2014.06.30.     20:49          0 újnévvel.txt

Ha egy mappa tartalmát szeretnénk egy új mappába másolni, akkor a következő parancs nem lesz az igazi:

PS C:\> Copy-Item -Path C:\PowerShell\20150923 -Destination C:\PowerShell\másol

at

PS C:\> Get-ChildItem C:\PowerShell\másolat\

PS C:\>

Ugyan létrejött a „Másolat” mappa, de üres maradt. Ha használjuk a -recurse kapcsolót, akkor meg a célmappába az eredeti mappa teljes egészében átmásolódik, nem csak annak tartalma:

PS C:\> Copy-Item -Path C:\PowerShell\20150923 -Destination C:\PowerShell\másol

at -Recurse

PS C:\> Get-ChildItem C:\PowerShell\másolat\

 

 

    Directory: C:\PowerShell\másolat

 

 

Mode                LastWriteTime         Length Name

----                -------------         ------ ----

d-----      2015.10.11.     18:00                20150923

Ha a -Path-nál *-ot használok, akkor sem lesz jó:

PS C:\> Copy-Item -Path C:\PowerShell\20150923\* -Destination C:\PowerShell\más

olat -Recurse

PS C:\> Get-ChildItem C:\PowerShell\másolat

 

 

    Directory: C:\PowerShell

 

 

Mode                LastWriteTime         Length Name

----                -------------         ------ ----

-a----      2015.09.23.     17:24           1480 másolat

A „másolat” nem egy mappa lett, hanem az eredeti mappa utolsó fájljának átnevezett példánya, azaz itt sem jártunk sikerrel.

A megoldás ilyen esetben, hogy létre kell hoznunk a célmappát első lépésben, majd már használhatjuk a *-os Copy-Item cmdletet:

PS C:\> New-Item -Path C:\PowerShell\másolat -ItemType directory

 

 

    Directory: C:\PowerShell

 

 

Mode                LastWriteTime         Length Name

----                -------------         ------ ----

d-----      2015.10.11.     18:20                másolat

 

 

PS C:\> Copy-Item C:\PowerShell\20150923\* -Destination C:\PowerShell\másolat\



Word To HTML Converter