Como criar arquivos e pastas com o PowerShell

Quando precisar de criar ficheiros e pastas num PC com Windows, usar a GUI parece ser a forma mais intuitiva de o fazer. No entanto, o PowerShell pode criar inteligentemente vários ficheiros e pastas em massa. Esta é uma tarefa bastante comum para quase todos os profissionais de TI, e neste guia, vamos mostrar-lhe como criar os seus ficheiros e pastas utilizando o cmdlet New-Item do PowerShell.

Como criar um ficheiro no PowerShell

Assim que perceber como utilizar o PowerShell, a velocidade com que pode criar as coisas torna as tarefas mundanas muito mais fáceis. Vamos ver com mais detalhe como criar ficheiros e pastas utilizando os cmdlets New-Item, Add-Content e Test-Path.

Publicidade

Como criar um ficheiro com o comando New-Item

Criar um novo ficheiro com o PowerShell pode ser feito com o cmdlet New-Item. Se eu quisesse criar um novo ficheiro de texto chamado MyTextFile.txt, a sintaxe seria a seguinte:

New-Item MyTextFile.txt
Creating a file using the New-Item cmdlet

No exemplo acima, o PowerShell criou um arquivo no diretório c:. No entanto, posso especificar um local diferente simplesmente adicionando o caminho ao nome do arquivo. Aqui está um exemplo abaixo:

New-Item c:\tools\MyNewFile.txt
Creating a file in a different folder

Observe que na captura de tela acima, eu estava no diretório temp, mas criei o arquivo no diretório tools. Depois de se familiarizar com a criação de um novo arquivo, é apenas mais uma linha de código a ser adicionada para começar a criar arquivos em massa.

Aqui está um exemplo de como usar um simples loop ForEach para criar 10 arquivos, todos com um nome de arquivo semelhante.

Publicidade

(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}
Create multiple files with a simple loop

Se necessário, você também pode usar o cmdlet Get-ChildItem para listar todos os arquivos nesse diretório.

Criar um arquivo após verificar se ele já existe

Você também pode usar o PowerShell para testar se os arquivos já existem antes de tentar criá-los. Existem várias maneiras de testar se os arquivos já existem com o PowerShell, mas a mais fácil é usar o cmdlet Test-Path.

Como o nome sugere, o cmdlet Test-Path pode verificar se um caminho existe. Você pode verificar caminhos de arquivos e/ou pastas. O cmdlet retorna True se um arquivo ou pasta existir e False se não existir.

No exemplo abaixo, estou verificando se o arquivo chamado MyTextFile.txt existe. Como o arquivo existe, o cmdlet Test-Path retornou True:

Publicidade

Test-Path MyTextFile.txt
Using test-Path to see if a file exists

Depois de entender a lógica para testar se um arquivo existe, você pode usar o comando Test-Path com uma instrução If para criar um arquivo quando o Test-Path retornar false. Vou te mostrar como fazer isso no exemplo a seguir:

  • Aqui, estou usando uma variável chamada $FileName para o nome do arquivo para tornar meu código mais fácil de ler e evitar digitação repetitiva.
  • Em seguida, adicionei uma instrução If para verificar um arquivo. Os parênteses redondos contêm a condição a ser testada. As chaves contêm o código que desejo executar se o teste for verdadeiro. Note que o operador -not está sendo usado no meu exemplo.
  • O código diz que se o arquivo chamado MyTextFile.txt não existir, então o arquivo deve ser criado. Uma instrução If só é executada se a condição for verdadeira.
  • I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt"
if (-not(test-path $Filename)){new-item $FileName}
Checking if a file exists and creating a new file if it doesn’t exist

Vamos analisar juntos a saída para saber exatamente o que aconteceu: No exemplo 1, executei meu código e nada aconteceu; observe que não há saída. Isso ocorre porque no meu diretório c:, um arquivo chamado MyTextFile.txt já existe. Como ele existe, a instrução if não executou o código.

No exemplo 2, no entanto, você pode perceber que eu mudei o diretório do diretório temporário para o diretório de ferramentas. Como não há nenhum arquivo chamado MeuArquivoDeTexto.txt neste último, quando eu executo o código pela segunda vez, a instrução if executa o cmdlet New-Item e cria um novo arquivo.

Como escrever dados em um arquivo novo ou existente

Nós já vimos como criar novos arquivos com o PowerShell. No entanto, se você olhar as capturas de tela anteriores, observe que o tamanho do arquivo de todos os novos arquivos é de 0 bytes. Isso ocorre porque o cmdlet New-Item na verdade cria arquivos vazios.

Se você deseja adicionar dados a um arquivo existente, pode usar o cmdlet Add-Content. A sintaxe é fácil de entender, assim como para o comando New-Item. Aqui está um exemplo abaixo:

Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"

Em seguida, posso verificar meu arquivo usando o cmdlet Get-Content.

get-content .\mytextfile.txt
Adding content to an existing file

I can also open the file in PowerShell using the Invoke-Item cmdlet.

Invoke-Item .\mytextfile.txt
Opening a file with the Invoke-Item cmdlet

Como sobrescrever um arquivo existente

Se o PowerShell pode ser usado para criar novos arquivos, também podemos usá-lo para substituir arquivos existentes em uma pasta. O PowerShell irá avisá-lo se você tentar criar um arquivo enquanto um com o mesmo nome já existe.

Você pode ver no exemplo abaixo a mensagem de erro que o PowerShell exibe quando eu tento criar um arquivo chamado MyNewFile3.txt.

New-item .\MyNewFile3.txt
PowerShell warns of an existing file with the same name

No entanto, se eu quiser substituir esse arquivo, posso fazer isso adicionando o parâmetro -force, que irá sobrescrever qualquer arquivo existente com o mesmo nome.

new-item .\MyNewFile3.txt -Force
Overwriting a file using the -force parameter

Como criar uma pasta no PowerShell

Acabamos de passar pelas diferentes maneiras de criar arquivos no PowerShell. Agora, vamos ver como criar pastas com os comandos New-item e md.

Criar uma pasta com o comando New-item

Criar pastas com o PowerShell também é uma tarefa fácil com o mesmo cmdlet New-Item que usamos anteriormente para criar arquivos. Tudo o que precisamos fazer é especificar o parâmetro -ItemType.

O parâmetro -ItemType controla se o cmdlet New-Item cria um arquivo, diretório (pasta), link simbólico, ponto de junção ou um link físico. Você pode saber mais sobre essas opções na página Microsoft Docs para New-Item.

Criar uma nova pasta com o PowerShell é semelhante a criar um novo arquivo. Aqui está um exemplo com o comando abaixo:

new-item TestFolder1 -ItemType Directory
Creating a folder using the New-Item cmdlet

Crie uma pasta com o comando md

O PowerShell é agora uma linguagem multiplataforma, o que significa que pode ser executado no Windows, macOS ou Linux. O processo de criação de arquivos e pastas no Windows, Linux e macOS a partir da linha de comando é semelhante.

No entanto, cada SO tem seus próprios comandos com nomes diferentes para realizar as mesmas tarefas. Por exemplo, para criar uma nova pasta chamada NewDirectory, cada SO possui uma sintaxe semelhante com nomes de cmdlets diferentes: No DOS, a sintaxe é ‘MD NewDirectory’, mas no Linux, é ‘MKDIR NewDirectory’.

A Microsoft adotou muitos dos nomes populares de cmdlets de outras linguagens e os incluiu no PowerShell. Comandos como MKDIR ou MD na verdade não existem no PowerShell: Em vez disso, são aliases de seus equivalentes do PowerShell que fazem o mesmo.

No PowerShell, MD é um alias para MKDIR. Além disso, MKDIR é um alias para o cmdlet New-Item. Isso significa que se você digitar MD, MKDIR ou New-Item no PowerShell, todos esses comandos terão o mesmo efeito: executar o cmdlet New-Item.

Aqui está um exemplo rápido para destacar essa funcionalidade.

md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt
Creating new files with PowerShell aliases

Nos exemplos acima, você pode ver que criei três arquivos usando os vários aliases e nomes de cmdlet para New-Item. Os aliases funcionam exatamente da mesma forma que digitar New-Item.

Conclusão

O PowerShell permite muitas maneiras de criar arquivos e pastas. O cmdlet New-Item torna incrivelmente fácil a criação de arquivos e pastas.

A Microsoft incluiu alias que se referem a comandos de sistemas operacionais populares como o DOS e o Linux no PowerShell para ajudar os administradores a se sentirem em casa. Também podemos usar loops para criar arquivos e pastas em escala e declarações lógicas como If para garantir que criemos apenas arquivos que ainda não existam.

Também podemos garantir que arquivos que já existem não sejam sobrescritos pelo código, a menos que queiramos substituí-los. Todas essas opções nos permitem construir scripts para automatizar o processo maçante de gerenciar arquivos e pastas.

O PowerShell é uma ferramenta muito versátil e, agora que você aprendeu como criar arquivos e pastas com ele, pode conferir nosso guia anterior sobre usando o PowerShell para excluir arquivos e pastas.

Source:
https://petri.com/powershell-how-to-create-files-folders/