Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A PowerShell-meghajtókon látható elemeket, például a fájlokat és mappákat vagy a beállításkulcsokat a PowerShell elemeinek nevezzük. A velük való munkához tartozó parancsmagok neveiben szerepel az Elem főnév.
A Get-Command -Noun Item parancs kimenete azt mutatja, hogy kilenc PowerShell elem-cmdlet található.
Get-Command -Noun Item
CommandType Name Definition
----------- ---- ----------
Cmdlet Clear-Item Clear-Item [-Path] <String[]...
Cmdlet Copy-Item Copy-Item [-Path] <String[]>...
Cmdlet Get-Item Get-Item [-Path] <String[]> ...
Cmdlet Invoke-Item Invoke-Item [-Path] <String[...
Cmdlet Move-Item Move-Item [-Path] <String[]>...
Cmdlet New-Item New-Item [-Path] <String[]> ...
Cmdlet Remove-Item Remove-Item [-Path] <String[...
Cmdlet Rename-Item Rename-Item [-Path] <String>...
Cmdlet Set-Item Set-Item [-Path] <String[]> ...
Új elemek létrehozása
Ha új elemet szeretne létrehozni a fájlrendszerben, használja a New-Item parancsmagot. Adja meg az Elérési út paramétert az elem elérési útjával, és az ItemType paramétert File vagy Directory értékkel.
Ha például egy új New.Directory nevű könyvtárat szeretne létrehozni a C:\Temp könyvtárban, írja be a következőt:
New-Item -Path C:\temp\New.Directory -ItemType Directory
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2006-05-18 11:29 AM New.Directory
Fájl létrehozásához módosítsa az ItemType paraméter értékét a következőre File: . Ha például létre szeretne hozni egy könyvtárban elnevezett file1.txt fájlt, írja be a New.Directory következőt:
New-Item -Path C:\temp\New.Directory\file1.txt -ItemType File
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp\New.Directory
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2006-05-18 11:44 AM 0 file1
Ezzel a módszerrel új beállításkulcsot hozhat létre. Valójában a beállításkulcsok létrehozása egyszerűbb, mert a Windows beállításjegyzékben az egyetlen elemtípus egy kulcs. (A beállításjegyzék-bejegyzések a tulajdonságok.) Például egy _Test nevű kulcs létrehozásához az CurrentVersion alkulcsban írja be:
New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\_Test
Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
SKC VC Name Property
--- -- ---- --------
0 0 _Test {}
Beállításjegyzék-elérési út beírásakor mindenképpen adja meg a kettőspontot (:), és a PowerShell-meghajtók nevei helyes formátumúak legyenek: HKLM: és HKCU:. A kettőspont nélkül a PowerShell nem ismeri fel a meghajtó nevét az elérési úton.
Miért nem elemek a beállításjegyzék értékei?
Amikor a Get-ChildItem parancsmaggal megkeresi a beállításkulcs elemeit, soha nem fog tényleges beállításjegyzék-bejegyzéseket vagy azok értékeit látni.
A beállításkulcs HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run például általában több beállításjegyzék-bejegyzést tartalmaz, amelyek a rendszer indításakor futó alkalmazásokat jelölik.
Ha azonban gyermekelemeket keres Get-ChildItem a kulcsban, csak a OptionalComponents kulcs alkulcsa jelenik meg:
Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
SKC VC Name Property
--- -- ---- --------
3 0 OptionalComponents {}
Bár a beállításjegyzék-bejegyzéseket célszerű elemekként kezelni, nem adhatja meg a beállításjegyzék-bejegyzés elérési útját oly módon, hogy az egyedi legyen. Az elérési út jelölése nem tesz különbséget a Futtatás nevű beállításkulcs és a Futtatás alkulcs (Alapértelmezett) beállításjegyzék-bejegyzés között.
Mivel a beállításjegyzék-bejegyzésnevek tartalmazhatják a fordított perjel karaktert (\), ha a beállításjegyzék-bejegyzések elemek voltak, az elérési út jelölésével nem lehetett megkülönböztetni az elérési útban található alkulcsból elnevezett Windows\CurrentVersion\Run beállításjegyzék-bejegyzést.
Meglévő elemek átnevezése
Egy fájl vagy mappa nevének módosításához használja a Rename-Item parancsmagot. Az alábbi parancs a fájl nevét a file1.txt következőre fileOne.txtmódosítja: .
Rename-Item -Path C:\temp\New.Directory\file1.txt fileOne.txt
A Rename-Item parancsmag módosíthatja egy fájl vagy mappa nevét, de nem tud áthelyezni egy elemet. A következő parancs meghiúsul, mert megpróbálja áthelyezni a fájlt a New.Directory könyvtárból a Temp könyvtárba.
Rename-Item -Path C:\temp\New.Directory\fileOne.txt C:\temp\fileOne.txt
Rename-Item : can't rename because the target specified isn't a path.
At line:1 char:12
+ Rename-Item <<<< -Path C:\temp\New.Directory\fileOne C:\temp\fileOne.txt
Elemek áthelyezése
Fájl vagy mappa áthelyezéséhez használja a Move-Item parancsmagot.
Az alábbi parancs például áthelyezi a New.Directory könyvtárat a C:\temp könyvtárból a C: meghajtó gyökerére. Az elem áthelyezésének ellenőrzéséhez adja meg a parancsmag PassThru paraméterét Move-Item .
A PassThru nélkül a Move-Item parancsmag nem jelenít meg semmilyen eredményt.
Move-Item -Path C:\temp\New.Directory -Destination C:\ -PassThru
Directory: Microsoft.PowerShell.Core\FileSystem::C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2006-05-18 12:14 PM New.Directory
Elemek másolása
Ha ismeri a másolási műveleteket más rendszerhéjakban, előfordulhat, hogy a Copy-Item parancsmag viselkedése szokatlan a PowerShellben. Ha egy elemet egyik helyről a másikra másol, Copy-Item alapértelmezés szerint nem másolja a tartalmát.
Ha például a C: meghajtóról másolja a New.Directory könyvtárat a C:\temp könyvtárba, a parancs sikeres lesz, de a New.Directory könyvtárban lévő fájlok nem lesznek másolva.
Copy-Item -Path C:\New.Directory -Destination C:\temp
Ha megjeleníti a(z) C:\temp\New.Directory tartalmát, azt fogja tapasztalni, hogy ez nem tartalmaz fájlokat.
PS> Get-ChildItem -Path C:\temp\New.Directory
PS>
Miért nem másolja a Copy-Item parancsmag a tartalmat az új helyre?
A Copy-Item parancsmagot úgy tervezték, hogy általános legyen; nem csak fájlok és mappák másolására szolgál.
A fájlok és mappák másolása esetén is érdemes lehet csak a tárolót másolni, a benne lévő elemeket nem.
Egy mappa teljes tartalmának másolásához adja meg a parancsmag Recurse paraméterét Copy-Item a parancsban. Ha már átmásolta a könyvtárat a tartalma nélkül, adja hozzá a Force paramétert, amely lehetővé teszi az üres mappa felülírását.
Copy-Item -Path C:\New.Directory -Destination C:\temp -Recurse -Force -PassThru
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2006-05-18 1:53 PM New.Directory
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp\New.Directory
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2006-05-18 11:44 AM 0 file1
Elemek törlése
Fájlok és mappák törléséhez használja a Remove-Item parancsmagot. A PowerShell-parancsmagok, például Remove-Itema jelentős, visszavonhatatlan módosításokat lehetővé tevő parancsmagok gyakran megerősítést kérnek a parancsok megadásakor. Ha például megpróbálja eltávolítani a New.Directory mappát, a rendszer kérni fogja a parancs megerősítését, mert a mappa fájlokat tartalmaz:
Remove-Item C:\temp\New.Directory
Confirm
The item at C:\temp\New.Directory has children and the -Recurse parameter was not
specified. If you continue, all children will be removed with the item. Are you
sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):
Mivel Yes ez az alapértelmezett válasz, a mappa és a fájlok törléséhez nyomja le az Enter billentyűt. Ha megerősítés nélkül szeretné eltávolítani a mappát, használja a Recurse paramétert .
Remove-Item C:\temp\New.Directory -Recurse
Elemek végrehajtása
A PowerShell a Invoke-Item parancsmaggal hajtja végre egy fájl vagy mappa alapértelmezett műveletét. Ezt az alapértelmezett műveletet a beállításjegyzék alapértelmezett alkalmazáskezelője határozza meg; az effektus ugyanaz, mint ha duplán kattint az elemre a Fájlkezelőben.
Tegyük fel például, hogy a következő parancsot futtatja:
Invoke-Item C:\WINDOWS
Megjelenik egy Explorer ablak a C:\Windows helyen, mintha duplán kattintott volna a C:\Windows mappára.
Ha windows vista előtti rendszeren hívja meg a Boot.ini fájlt:
Invoke-Item C:\boot.ini
Ha a .ini fájltípus a Jegyzettömbhöz van társítva, a boot.ini fájl megnyílik a Jegyzettömbben.