Compartilhar via


FileSystem Provider

Nome do provedor

FileSystem

Unidades

C, D

Descrição resumida

Fornece acesso a arquivos e diretórios.

Descrição detalhada

O provedor FileSystem do Windows PowerShell permite obter, adicionar, alterar, limpar e excluir arquivos e diretórios no Windows PowerShell.

O provedor FileSystem expõe as unidades do Windows PowerShell que correspondem às unidades lógicas configuradas em seu computador, incluindo as unidades mapeadas para unidades de rede. Por exemplo, um computador com uma unidade de disquete, uma unidade de disco rígido e um diretório compartilhado de rede mapeado poderá ter unidades denominadas A, C e Z. O provedor FileSystem expõe unidades do Windows PowerShell que correspondem diretamente a A, C e Z, permitindo que você referencie essas unidades no Windows PowerShell. Por exemplo, para fazer referência à unidade C, você utiliza C:, como mostrado no seguinte exemplo:

Get-ChildItem c:

O comando retorna todo o conteúdo da unidade C, incluindo arquivos e diretórios. Ao referenciar um diretório ou arquivo específico por meio do provedor FileSystem, você deverá fornecer as informações necessárias para identificar esse diretório ou arquivo. Isto significa que, em alguns casos, você deve fornecer um nome totalmente qualificado. Um nome totalmente qualificado inclui o nome da unidade (com um sinal de dois-pontos), qualquer nome de diretório e subdiretório e o nome do arquivo (quando aplicável). O exemplo a seguir mostra o nome totalmente qualificado do arquivo Shell.dll, que está localizado no subdiretório System32 do diretório do Windows na unidade C:

c:\windows\system32\shell.dll

Como você pode ver, cada elemento do nome totalmente qualificado é separado por uma barra invertida (\). O Windows PowerShell também permite o uso de uma barra (/) para ficar consistente com vários outros shells.

Em alguns casos, você não precisa fornecer um nome totalmente qualificado ao fazer referência a um arquivo ou diretório. Por exemplo, se você desejar acessar um arquivo em seu local de trabalho atual, deverá fornecer somente o nome do arquivo. Se o seu local de trabalho atual for c:\windows, você poderá exibir uma lista de todos os arquivos .dll nesse diretório usando o seguinte comando:

Get-ChildItem *.dll

Se o seu diretório de trabalho for algo diferente de c:\windows, como c:\Arquivos de programas\Windows PowerShell, o comando poderá precisar incluir o nome totalmente qualificado:

Get-ChildItem c:\windows\*.dll

Em alguns casos, é possível utilizar referências relativas a um local. Se o seu local de trabalho for c:\windows, e você desejar exibir uma lista de todos os arquivos .dll no diretório c:\windows\system32, poderá usar o seguinte comando:

Get-ChildItem .\system32\*.dll

O ponto antes de \system32 representa o local de trabalho atual.

Em algumas situações, o local de trabalho atual será em uma unidade diferente de FileSystem. Se esse for o caso, você sempre deverá incluir o nome da unidade de destino em sua referência. Por exemplo, suponha que o local de trabalho atual seja a unidade env:. Para exibir o conteúdo da unidade C, você utilizará o seguinte comando:

Get-ChildItem c:

Exemplos

-------------------------- EXEMPLO 1 --------------------------

Este comando obtém o local atual:

get-location

O cmdlet Get-Location inclui a funcionalidade de comandos como o comando cd no Prompt de Comando do Windows e o comando pwd no UNIX. Para obter informações, digite: get-help get-location

-------------------------- EXEMPLO 2 --------------------------

Este comando define o local atual:

set-location C:

Obtendo informações de arquivo e diretório

-------------------------- EXEMPLO 1 --------------------------

Este comando obtém todos os arquivos e diretórios no diretório atual:

get-childitem

Por padrão, o cmdlet Get-ChildItem não é recursivo. Se houver arquivos e pastas no diretório atual quando você executar o comando, serão retornados um objeto System.IO.FileInfo e um objeto System.IO.DirectoryInfo.

-------------------------- EXEMPLO 2 --------------------------

Este comando obtém todos os arquivos e diretórios no diretório atual usando Get-ChildItem:

get-childitem | where-object {!$_.psiscontainer}

Ele canaliza os resultados para Where-Object, que examina a propriedade PSIsContainer e permite que apenas os objetos que não sejam contêineres (!) passem pelo pipeline.

-------------------------- EXEMPLO 3 --------------------------

Este comando obtém todos os arquivos e diretórios no diretório atual usando Get-ChildItem. Ele canaliza os resultados para Where-Object, que examina a propriedade PSIsContainer e permite que apenas os objetos que não sejam contêineres passem pelo pipeline.

get-childitem | where-object {$_.psiscontainer}

-------------------------- EXEMPLO 4 --------------------------

Este comando obtém todos os arquivos e diretórios no diretório atual usando Get-ChildItem:

get-item -path a | format-list *

Ele canaliza os resultados para o cmdlet Where-Object, que examina a propriedade PSIsContainer e permite que apenas os objetos que não sejam contêineres passem pelo pipeline.

-------------------------- EXEMPLO 5 --------------------------

Este comando usa o cmdlet Get-Item para obter informações sobre o arquivo Test.txt:

get-item -path test.txt | format-list *

O cmdlet Format-List é usado para exibir todas as propriedades do objeto resultante.

Copiando arquivos e diretórios

-------------------------- EXEMPLO 1 --------------------------

Este comando copia o arquivo A.txt do diretório C:\A para o diretório C:\A\Bb:

copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt

Ele substitui arquivos no diretório de destino sem solicitar confirmação.

-------------------------- EXEMPLO 2 --------------------------

Este comando copia todos os arquivos do diretório C:\A\Bb que tenham a extensão de nome arquivo .txt para o diretório C:\A\Cc\Ccc\:

copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\

Ele utiliza os nomes originais dos arquivos. O comando substitui os arquivos existentes no diretório de destino sem solicitar confirmação.

-------------------------- EXEMPLO 3 --------------------------

Copia todos os diretórios e arquivos contidos no diretório C:\a para o diretório C:\c. Se qualquer um dos diretórios para cópia já existir no diretório de destino, o comando falhará, a menos que você especifique o parâmetro Force.

copy-item -path C:\a\* -destination C:\c -recurse

Movendo arquivos e diretórios

-------------------------- EXEMPLO 1 --------------------------

Este comando move o arquivo C.txt do diretório C:\A para o diretório C:\A\Aa:

move-item -path C:\a\c.txt -destination C:\a\aa

O comando não substituirá automaticamente um arquivo existente que tenha o mesmo nome. Para forçar o cmdlet a substituir um arquivo existente, especifique o parâmetro Force.

-------------------------- EXEMPLO 2 --------------------------

Este comando move o diretório C:\A e todo o seu conteúdo para o diretório C:\B:

move-item -path C:\a -destination C:\b

Você não pode mover um diretório quando ele é o local atual.

Gerenciando conteúdo do arquivo

-------------------------- EXEMPLO 1 --------------------------

Este comando anexa a cadeia de caracteres "test content" ao arquivo Test.txt:

add-content -path test.txt -value "test content"

O conteúdo existente no arquivo Test.txt não é excluído.

-------------------------- EXEMPLO 2 --------------------------

Este comando obtém o conteúdo do arquivo Test.txt e o exibe no console:

get-content -path test.txt

Você poderá canalizar o conteúdo do arquivo para outro cmdlet. Por exemplo, o seguinte comando lê o conteúdo do arquivo Test.txt e os fornece como entrada para o cmdlet ConvertTo-HTML: get-content -path test.txt | convertto-html

-------------------------- EXEMPLO 3 --------------------------

Este comando substitui o conteúdo do arquivo Test.txt pela cadeia de caracteres "test content":

set-content -path test.txt -value "test content"

Ele substitui o conteúdo de Test.txt. Você poderá usar o parâmetro Value do cmdlet New-Item para adicionar conteúdo a um arquivo, quando ele é criado.

Gerenciando descritores de segurança

-------------------------- EXEMPLO 1 --------------------------

Este comando retorna um objeto System.Security.AccessControl.FileSecurity:

get-acl -path test.txt | format-list -property *

Para obter mais informações sobre este objeto, canalize o comando para o cmdlet Get-Member. Ou consulte "FileSecurity Class" (em inglês) na biblioteca MSDN (Microsoft Developer Network) em https://go.microsoft.com/fwlink/?LinkId=145718.

-------------------------- EXEMPLO 2 --------------------------

Este comando retorna um objeto System.Security.AccessControl.DirectorySecurity:

get-acl -path test_directory | format-list -property *

Para obter mais informações sobre este objeto, canalize o comando para o cmdlet Get-Member. Ou consulte "DirectorySecurity Class" (em inglês) na biblioteca MSDN em https://go.microsoft.com/fwlink/?LinkId=145736.

Criando arquivos e diretórios

-------------------------- EXEMPLO 1 --------------------------

Este comando cria o diretório Logfiles na unidade C:

new-item -path c:\ -name logfiles -type directory

-------------------------- EXEMPLO 2 --------------------------

Este comando cria o arquivo Log2.txt no diretório C:\Logfiles e adiciona a cadeia de caracteres "test log" ao arquivo:

new-item -path c:\logfiles -name log.txt -type file

-------------------------- EXEMPLO 3 --------------------------

Cria um arquivo chamado Log2.txt no diretório C:\logfiles e adiciona a cadeia de caracteres "test log" ao arquivo.

new-item -path c:\logfiles -name log2.txt -type file -value "test log"

Renomeando arquivos e diretórios

-------------------------- EXEMPLO 1 --------------------------

Este comando renomeia o arquivo A.txt no diretório C:\A para B.txt:

rename-item -path c:\a\a.txt -newname b.txt

-------------------------- EXEMPLO 2 --------------------------

Este comando renomeia o diretório C:\A\Cc para C:\A\Dd:

rename-item -path c:\a\cc -newname dd

Excluindo arquivos e diretórios

-------------------------- EXEMPLO 1 --------------------------

Este comando exclui o arquivo Test.txt no diretório atual:

remove-item -path test.txt

-------------------------- EXEMPLO 2 --------------------------

Este comando excluir todos os arquivos do diretório atual que tenham a extensão de nome de arquivo .xml:

remove-item -path *.xml

Iniciando um programa chamando um arquivo associado

-------------------------- EXEMPLO 1 --------------------------

O primeiro comando usa o cmdlet Get-Service para obter informações sobre serviços locais.

Ele canaliza as informações para o cmdlet Export-Csv e, em seguida, armazena essas informações no arquivo Services.csv.

O segundo comando usa Invoke-Item para abrir o arquivo Services.csv no programa associado à extensão .csv:

get-service | export-csv -path services.csv

invoke-item -path services.csv

Parâmetros dinâmicos

Parâmetros dinâmicos são parâmetros de cmdlets, que são adicionados por um provedor do Windows PowerShell e estão disponíveis apenas quando o cmdlet está sendo usado na unidade habilitada pelo provedor.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Value Description

Desconhecido

O tipo de codificação é desconhecido ou inválido. Os dados podem ser tratados como binários.

String

Utiliza o tipo de codificação para uma cadeia de caracteres.

Unicode

Codifica em formato UTF-16 utilizando a ordem de bytes little-endian.

Byte

Codifica um conjunto de caracteres em uma sequência de bytes.

BigEndianUnicode

Codifica em formato UTF-16 utilizando a ordem de bytes big-endian.

UTF8

Codifica no formato UTF-8.

UTF7

Codifica no formato UTF-7.

ASCII

Utiliza a codificação para o conjunto de caracteres ASCII (7 bits).

Cmdlets com suporte

Delimiter <System.String>

Especifica o delimitador a ser utilizado ao ler o arquivo. O padrão é "\n" (fim de linha).

Cmdlets com suporte

Wait <System.Management.Automation.SwitchParameter>

Aguarda o conteúdo a ser anexado ao arquivo. Se o conteúdo estiver anexado, ele retornará o conteúdo anexado. Se o conteúdo tiver sido alterado, ele retornará o arquivo inteiro.

Durante a espera, Get-Content verifica o arquivo uma vez a cada segundo até você o interromper, por exemplo, pressionando CTRL+C.

Cmdlets com suporte

Consulte também

Conceitos

about_Providers