Weboldal keresés

Fájl áthelyezése egy mappába a PowerShellben a Move-Item parancsmag segítségével


Többféleképpen is áthelyezhet egy fájlt egy mappába a PowerShellben.

A Move-Item parancsmag, a Robocopy stb. segítségével áthelyezheti a PowerShellben lévő fájlokat egy mappába.

Hadd mutassam meg gyorsan, hogyan helyezhet át egy fájlt egy mappába a PowerShellben a Move-Item parancsmag segítségével.

Ha egy fájlt a PowerShell egyik mappájába szeretne áthelyezni, használja a Move-Item parancsmagot a -Path paraméterrel a fájl jelenlegi helyének, a -Destination paraméterrel pedig a célmappa meghatározásához. Például a Move-Elem -Path "C:\Source\file.txt" -Cél "C:\Cél" a file.txt fájlt a C:\Forrásból a C:\Cél helybe helyezi át.

Helyezzen át egy fájlt egy mappába a PowerShellben a Move-Item parancsmag segítségével

A PowerShellben a fájlok mozgatásához használt elsődleges parancsmag az Elem áthelyezése. Ez a parancsmag áthelyezhet fájlokat, átnevezhet elemeket, és akár rendszerleíró kulcsokban is használható. Azonban a fájlok egyik helyről a másikra való áthelyezésére összpontosítunk.

Alapvető egyetlen fájl áthelyezése

Íme egy egyszerű példa egy fájl áthelyezésére egyik mappából a másikba a PowerShellben:

Move-Item -Path "C:\Source\file.txt" -Destination "C:\Destination"

Ebben a szkriptben az Elem áthelyezése az áthelyezési művelet elindításához használt parancsmag. A -Path paraméter határozza meg a fájl aktuális helyét, a -Destination paraméter pedig azt a mappát, ahová a fájl áthelyezésre kerül.

A kimenetet az alábbi képernyőképen láthatja, miután végrehajtottam a PowerShell-szkriptet.

Több fájl áthelyezése

Ha több fájlt szeretne áthelyezni a PowerShellben a Move-Item használatával, használhat helyettesítő karaktereket (*), vagy megadhat több elérési utat. Íme egy példa.

Move-Item -Path "C:\Source\*.txt" -Destination "C:\Destination"

Ez a parancs az összes .txt fájlt áthelyezi a Forrás mappából a Cél mappába.

A mappaszerkezet megőrzése

Ha fájlokat szeretne áthelyezni és fenntartani a könyvtárszerkezetüket, használhatja a -Recurse paramétert. Ez különösen akkor hasznos, ha nagyszámú fájlt helyez át egymásba ágyazott mappák között.

Move-Item -Path "C:\Source\*" -Destination "C:\Destination" -Recurse

Ez a parancs áthelyezi az összes elemet a Source könyvtárból a Destination könyvtárba, beleértve az almappákat és azok tartalmát a PowerShellben.

Fájlok szűrése mozgás közben

Előfordulhatnak olyan helyzetek, amikor bizonyos szűrőfeltételek használatával bizonyos fájlokat át kell helyezni az áthelyezés előtt. Mielőtt áthelyezné őket a PowerShellbe, szűrheti a fájlokat különféle attribútumok, például kiterjesztés, méret vagy utolsó módosítás dátuma alapján.

Get-ChildItem -Path "C:\Source" -Filter "*.txt" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Move-Item -Destination "C:\Destination"

Ez a szkript lekéri az összes .txt fájlt a Forrás mappából, amelyeket utoljára több mint 30 napja módosítottak, és áthelyezi őket a Cél mappába.

Feltételes áthelyezések a fájltartalom alapján

Néha előfordulhat, hogy a tartalmuk alapján át kell helyeznie a fájlokat. Ehhez el kell olvasni a fájlt, majd el kell dönteni, hogy áthelyezzük-e.

Itt van egy teljes PowerShell-szkript.

Get-ChildItem -Path "C:\Source\*.log" | Where-Object { Get-Content $_.FullName | Select-String -Pattern "Error" } | Move-Item -Destination "C:\Destination"

Ez a szkript áthelyezi az „Error” szót tartalmazó .log fájlokat a Source mappából a Destination mappába.

Hibakezelés a fájlok áthelyezése közben a PowerShellben

A fájláthelyezések automatizálása során fontos, hogy hibakezelést is beépítsünk az olyan problémák kezelésére, mint a fájlok zárolása vagy az engedélyek. A PowerShell az -ErrorAction paramétert biztosítja az ilyen forgatókönyvek kezelésére.

Move-Item -Path "C:\Source\file.txt" -Destination "C:\Destination" -ErrorAction SilentlyContinue

Ez a szkript megpróbálja áthelyezni a file.txt fájlt a Cél mappába, és csendben folytatja, ha hiba történik, kivétel nélkül.

Robocopy használata

Bonyolultabb fájlátviteli igények esetén a PowerShell olyan külső eszközöket hívhat meg, mint a Robocopy, amely egy robusztus fájlmásoló parancssori eszköz, amelyet a Windows tartalmaz.

robocopy "C:\Source" "C:\Destination" file.txt /MOV

Ez a parancs a Robocopy segítségével helyezi át a fájl.txt fájlt a Forrás mappából a Cél mappába. A /MOV paraméter arra utasítja a Robocopy-t, hogy másolás helyett helyezze át a fájlt.

Automatizált költöztetések ütemezése

A PowerShell-parancsfájlok ütemezhetők meghatározott időpontokban történő futtatásra a Windows Feladatütemező segítségével. Ez hasznos olyan ismétlődő feladatoknál, mint a naplófájlok karbantartása vagy biztonsági mentési rutinok.

$Action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-File "C:\Scripts\MoveFiles.ps1"'
$Trigger = New-ScheduledTaskTrigger -At 3am -Daily
$Task = Register-ScheduledTask -Action $Action -Trigger $Trigger -TaskName "MoveFilesTask" -Description "Moves files daily at 3 AM"

Ez a szkript létrehoz egy ütemezett feladatot, amely egy PowerShell-szkriptet (MoveFiles.ps1) futtat minden nap hajnali 3-kor.

Következtetés

A PowerShell hatékony és rugalmas módot biztosít a fájlok mappába helyezésére. A PowerShell Move-Item parancsmag nagyon hasznos a fájlmozgatáshoz.

Ebben a PowerShell-oktatóanyagban példákkal magyaráztam el, hogyan lehet áthelyezni fájlokat egy mappába a PowerShellben.

Kapcsolódó cikkek