Rechtstreeks bewerken van ItemsManipulating Items Directly

De elementen die u in Windows PowerShell-stations, zoals de bestanden en mappen in het bestand systeemstations en de sleutels in de Windows PowerShell register-stations ziet worden genoemd items in Windows PowerShell.The elements that you see in Windows PowerShell drives, such as the files and folders in the file system drives, and the registry keys in the Windows PowerShell registry drives, are called items in Windows PowerShell. De cmdlets voor het werken met hen item hebben het zelfstandig naamwoord Item in hun naam.The cmdlets for working with them item have the noun Item in their names.

De uitvoer van de Get-Command - zelfstandig naamwoord Item opdracht geeft aan dat negen item Windows PowerShell-cmdlets.The output of the Get-Command -Noun Item command shows that there are nine Windows PowerShell item cmdlets.

PS> 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[]> ...

Maken van nieuwe Items (Nieuw Item)Creating New Items (New-Item)

Gebruik voor het maken van een nieuw item in het bestandssysteem de New Item cmdlet.To create a new item in the file system, use the New-Item cmdlet. Bevatten de pad parameter met het pad naar het item en de ItemType parameter met de waarde 'file' of 'map'.Include the Path parameter with path to the item, and the ItemType parameter with a value of "file" or "directory".

Bijvoorbeeld, om een nieuwe map maken met de naam ' New.Directory"in C:\Temp-directory, type:For example, to create a new directory named "New.Directory"in the C:\Temp directory, type:

PS> New-Item -Path c:\temp\New.Directory -ItemType Directory

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18  11:29 AM            New.Directory

Voor het maken van een bestand, wijzig de waarde van de ItemType parameter 'file'.To create a file, change the value of the ItemType parameter to "file". Typ bijvoorbeeld de volgende opdracht voor het maken van een bestand met de naam 'bestand1.txt' in de map New.Directory:For example, to create a file named "file1.txt" in the New.Directory directory, type:

PS> New-Item -Path C:\temp\New.Directory\file1.txt -ItemType file

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp\New.Directory

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2006-05-18  11:44 AM          0 file1

U kunt dezelfde techniek gebruiken voor het maken van een nieuwe registersleutel.You can use the same technique to create a new registry key. Er is in feite een registersleutel gemakkelijker te maken, omdat het enige itemtype in het Windows-register een sleutel is.In fact, a registry key is easier to create because the only item type in the Windows registry is a key. (Registervermeldingen zijn item eigenschappen.) Typ bijvoorbeeld de volgende opdracht voor het maken van een sleutel met de naam '_Test' in de subsleutel CurrentVersion:(Registry entries are item properties.) For example, to create a key named "_Test" in the CurrentVersion subkey, type:

PS> New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion_Test

   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micros
oft\Windows\CurrentVersion

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 _Test                          {}

Wanneer een registerpad te typen, zorg ervoor dat u de dubbele punt (:) in de Windows PowerShell-station namen, HKLM: en HKCU:.When typing a registry path, be sure to include the colon (:) in the Windows PowerShell drive names, HKLM: and HKCU:. Zonder de dubbele punt, wordt de stationsnaam van het in het pad niet herkend door Windows PowerShell.Without the colon, Windows PowerShell does not recognize the drive name in the path.

Waarom registerwaarden niet kunnen worden ItemsWhy Registry Values are not Items

Wanneer u gebruikt de Get-ChildItem cmdlet vinden van de items in een registersleutel, wordt nooit werkelijke registervermeldingen of de waarden weergegeven.When you use the Get-ChildItem cmdlet to find the items in a registry key, you will never see actual registry entries or their values.

Bijvoorbeeld, de registersleutel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\uitvoeren bevat meestal verschillende registervermeldingen die staan voor toepassingen die worden uitgevoerd wanneer het systeem wordt gestart.For example, the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run usually contains several registry entries that represent applications that run when the system starts.

Wanneer u echter gebruiken Get-ChildItem onderliggende items in de sleutel zoekt, ziet u alleen de voor OptionalComponents subsleutels van de sleutel:However, when you use Get-ChildItem to look for child items in the key, all you will see is the OptionalComponents subkey of the key:

PS> Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Micros
oft\Windows\CurrentVersion\Run
SKC  VC Name                           Property
---  -- ----                           --------
  3   0 OptionalComponents             {}

Hoewel het normaal zou handig om te behandelen registervermeldingen als items zijn, kunt u een pad naar een register-item kan niet opgeven op een manier die ervoor zorgt dat deze uniek is.Although it would be convenient to treat registry entries as items, you cannot specify a path to a registry entry in a way that ensures that it is unique. De notatie van het pad wordt geen onderscheid gemaakt tussen de registersubsleutel met de naam uitvoeren en de (standaard) register-item in de uitvoeren subsleutel.The path notation does not distinguish between the registry subkey named Run and the (Default) registry entry in the Run subkey. Bovendien, omdat de namen van vermeldingen register mag het backslash-teken (\), als regsitry vermeldingen items, zou u kan de notatie van het pad niet gebruiken om te onderscheiden van een registervermelding met de naam Windows\CurrentVersion\uitvoeren uit de subsleutel dat in dat pad bevindt zich.Furthermore, because registry entry names can contain the backslash character (\), if regsitry entries were items, then you could not use the path notation to distinguish a registry entry named Windows\CurrentVersion\Run from the subkey that is located in that path.

Naam van bestaande Items (Rename-Item) wijzigenRenaming Existing Items (Rename-Item)

De naam van een bestand of map wijzigen, gebruikt u de Rename-Item cmdlet.To change the name of a file or folder, use the Rename-Item cmdlet. De volgende opdracht wordt de naam van de Bestand1.txt van het bestand in fileOne.txt.The following command changes the name of the file1.txt file to fileOne.txt.

PS> Rename-Item -Path C:\temp\New.Directory\file1.txt fileOne.txt

De Rename-Item cmdlet kan de naam van een bestand of map wijzigen, maar het kan een item niet verplaatsen.The Rename-Item cmdlet can change the name of a file or a folder, but it cannot move an item. De volgende opdracht mislukt, omdat deze probeert het bestand van de map New.Directory verplaatsen naar de map Temp.The following command fails because it attempts to move the file from the New.Directory directory to the Temp directory.

PS> Rename-Item -Path C:\temp\New.Directory\fileOne.txt c:\temp\fileOne.txt
Rename-Item : Cannot rename because the target specified is not a path.
At line:1 char:12
+ Rename-Item  <<<< -Path C:\temp\New.Directory\fileOne c:\temp\fileOne.txt

Verplaatsen van Items (Item verplaatsen)Moving Items (Move-Item)

Als u een bestand of map, gebruikt u de Item verplaatsen cmdlet.To move a file or folder, use the Move-Item cmdlet.

Bijvoorbeeld de map New.Directory in de volgende opdracht wordt verplaatst van de C:\tijdelijke map naar de hoofdmap van station C:.For example, the following command moves the New.Directory directory from the C:\temp directory to the root of the C: drive. Om te verifiëren dat het item is verplaatst, omvatten de PassThru parameter van de Item verplaatsen cmdlet.To verify that the item was moved, include the PassThru parameter of the Move-Item cmdlet. Zonder Passthru, wordt de Item verplaatsen cmdlet geeft geen resultaten weer.Without Passthru, the Move-Item cmdlet does not display any results.

PS> Move-Item -Path C:\temp\New.Directory -Destination C:\ -PassThru

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18  12:14 PM            New.Directory

Kopiëren van Items (Copy-Item)Copying Items (Copy-Item)

Als u bekend met de kopieerbewerkingen in andere houders bent, vindt u mogelijk het gedrag van de Copy-Item cmdlet in Windows PowerShell om te worden ongebruikelijke.If you are familiar with the copy operations in other shells, you might find the behavior of the Copy-Item cmdlet in Windows PowerShell to be unusual. Wanneer u een item van de ene locatie naar een andere kopieert, kopieert Copy-Item niet de inhoud ervan standaard.When you copy an item from one location to another, Copy-Item does not copy its contents by default.

Bijvoorbeeld, als u kopieert de New.Directory map uit het station C: naar station C:\tijdelijke map, de opdracht is geslaagd, maar de bestanden in de map New.Directory zijn niet gekopieerd.For example, if you copy the New.Directory directory from the C: drive to the C:\temp directory, the command succeeds, but the files in the New.Directory directory are not copied.

PS> Copy-Item -Path C:\New.Directory -Destination C:\temp

Als u de inhoud van weergeven C:\temp\New.Directory, vindt u bevat geen bestanden:If you display the contents of C:\temp\New.Directory, you will find that it contains no files:

PS> Get-ChildItem -Path C:\temp\New.Directory
PS>

Waarom heeft niet de Copy-Item cmdlet Kopieer de inhoud naar de nieuwe locatie?Why doesn't the Copy-Item cmdlet copy the contents to the new location?

De Copy-Item cmdlet is ontworpen om te worden algemene; het is niet alleen voor het kopiëren van bestanden en mappen.The Copy-Item cmdlet was designed to be generic; it is not just for copying files and folders. Bovendien zelfs bij het kopiëren van bestanden en mappen, raadzaam om alleen de container en niet de items erin te kopiëren.Also, even when copying files and folders, you might want to copy only the container and not the items within it.

Alle van de inhoud van een map wilt kopiëren, omvatten de Recurse parameter van de Copy-Item cmdlet in de opdracht.To copy all of the contents of a folder, include the Recurse parameter of the Copy-Item cmdlet in the command. Als u de map zonder de inhoud al hebt gekopieerd, voegt u de Force parameter, zodat u kunt de lege map overschrijven.If you have already copied the directory without its contents, add the Force parameter, which allows you to overwrite the empty folder.

PS> Copy-Item -Path C:\New.Directory -Destination C:\temp -Recurse -Force -Passthru
    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18   1:53 PM            New.Directory

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp\New.Directory

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2006-05-18  11:44 AM          0 file1

Verwijderen van Items (Item verwijderen)Deleting Items (Remove-Item)

Als u wilt verwijderen van bestanden en mappen, gebruiken de Item verwijderen cmdlet.To delete files and folders, use the Remove-Item cmdlet. Windows PowerShell-cmdlets, zoals Item verwijderen, die significante kunt maken, niet ongedaan worden gemaakt wijzigingen vaak om bevestiging wordt gevraagd wanneer u de opdrachten invoert.Windows PowerShell cmdlets, such as Remove-Item, that can make significant, irreversible changes will often prompt for confirmation when you enter its commands. Bijvoorbeeld, als u probeert te verwijderen de New.Directory map, wordt u gevraagd om te bevestigen dat de opdracht, omdat de map bestanden bevat:For example, if you try to remove the New.Directory folder, you will be prompted to confirm the command, because the folder contains files:

PS> Remove-Item C:\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"):

Omdat Ja is het standaardantwoord verwijderen van de map en de bijbehorende bestanden, drukt u op de Enter sleutel.Because Yes is the default response, to delete the folder and its files, press the Enter key. U kunt de map zonder bevestiging verwijderen met de -Recurse parameter.To remove the folder without confirming, use the -Recurse parameter.

PS> Remove-Item C:\temp\New.Directory -Recurse

Uitvoeren van Items (Invoke-Item)Executing Items (Invoke-Item)

Windows PowerShell maakt gebruik van de Invoke-Item cmdlet een standaardactie uitvoeren voor een bestand of map.Windows PowerShell uses the Invoke-Item cmdlet to perform a default action for a file or folder. Deze standaardactie wordt bepaald door de handler standaard toepassing in het register. het effect is hetzelfde als wanneer u dubbelklikt op het item in Windows Verkenner.This default action is determined by the default application handler in the registry; the effect is the same as if you double-click the item in File Explorer.

Stel bijvoorbeeld dat u de volgende opdracht uitvoeren:For example, suppose you run the following command:

PS> Invoke-Item C:\WINDOWS

Een Explorer-venster dat in C: bevindt zich\Windows wordt weergegeven, net als de C: had dubbelklikken\Windows-map.An Explorer window that is located in C:\Windows appears, just as if you had double-clicked the C:\Windows folder.

Als u de Boot.ini bestand op een systeem ouder dan Windows Vista:If you invoke the Boot.ini file on a system prior to Windows Vista:

PS> Invoke-Item C:\boot.ini

Als het type INI-bestand gekoppeld aan Kladblok is, is het boot.ini-bestand wordt geopend in Kladblok.If the .ini file type is associated with Notepad, the boot.ini file opens in Notepad.