PowerShell Excluir arquivo se existir

PowerShell Excluir arquivo se existir

Como qualquer outra concha, PowerShell é uma concha poderosa e uma linguagem de script desenvolvida pela Microsoft. Originalmente projetado para Windows, o PowerShell já está disponível para todas as principais plataformas. A partir do PowerShell 6, tornou-se um aplicativo gratuito e de código aberto.

Semelhante a qualquer outro script de shell, podemos usar o PowerShell para automatizar de coisas básicas para avançadas. Neste guia, confira como usar o PowerShell para excluir um arquivo se houver no Linux.

Verificando se existir um arquivo

Semelhante a outras conchas, o PowerShell vem com seu próprio conjunto de comandos para executar várias tarefas, conhecidas como cmdlets. Para testar uma determinada afirmação, em Bash, usaríamos a declaração de teste Bash que verifica se um determinado argumento é verdadeiro ou falso. A declaração de teste é um mecanismo de uso geral que pode calcular uma ampla variedade de comandos possíveis.

No caso de PowerShell, no entanto, existem cmdlets específicos para uma tarefa específica. Aqui, precisaremos de teste de teste para verificar se o arquivo fornecido existe no local definido.

Aqui está uma simples demonstração de teste de teste em ação.

$ Test -path -path

Por padrão, o teste de teste verificará se o elemento especificado existe no local descrito. Se existir, retorna o valor booleano "verdadeiro". Caso contrário, ele retorna "falso".

Excluindo um arquivo no PowerShell

No Linux, usaríamos o comando rm para excluir um arquivo ou diretório. No caso de PowerShell, ele usa o cmdlet remove-ite.

Confira a documentação da Microsoft no Remove-Item.

Por exemplo, para remover um arquivo específico, execute o seguinte comando.

$ Remove-ite

Para remover um diretório, precisamos de uma opção adicional "-recurse".

$ Remove-ite -Recurso

Excluindo arquivos (s) se existir

Agora, podemos combinar os dois métodos e fazer um script simples que excluirá um arquivo se houver no local do alvo.

Primeiro, atribua uma variável que manterá o valor do caminho do arquivo.

$ $ Filelocation = ""

Em seguida, use teste de teste para verificar se o arquivo existe no local.

$ Test-path $ filelocation

Dependendo do valor de retorno do teste de teste, podemos tomar a decisão de remover o arquivo de destino. Podemos usar a declaração PowerShell if-Else para determinar a ação.

if (teste de teste $ filename = true)
Remover-itene $ nome do arquivo
$

Vamos adicionar algumas mensagens adicionais para cada resultado possível.

if (teste de teste $ filelocation)
Remover-Item $ filelocation
Write-host "$ filelocation é removido"

outro
Write-host "$ fileLocation não existe"

Implementando em um script PowerShell

É hora de colocar todos os códigos em um script PowerShell adequado. Semelhante aos scripts Bash, podemos usar scripts do PowerShell para automatizar várias tarefas usando cmdlets e comandos do PowerShell. No Linux, os scripts PowerShell e Bash compartilham semelhanças estruturais.

Primeiro, precisamos da localização do local executável do PowerShell. É importante, pois fará parte do shebang. Execute o seguinte comando.

$ que PowerShell

Agora podemos montar todas essas peças em um único script do PowerShell. Um script PowerShell vem com a extensão de arquivo ps1.

$ nano excluir-if-exist.ps1

Agora, insira o código que desenvolvemos até agora.

$ Filelocation = ""
if (teste de teste $ filelocation)
Remover-Item $ filelocation
Write-host "$ filelocation é removido"

outro
Write-host "$ fileLocation não existe"

Salve o arquivo e feche o editor. Marque o arquivo como executável.

$ chmod +x excluir-se-existir.ps1

Finalmente, execute o script.

$ ./Excluir-if-exist.ps1

Situações especiais

Excluindo arquivos somente leitura

O cmdlet Remof-Item não pode excluir arquivos inexistentes ou somente leitura. Em tal situação, podemos alterar o comando Remove-Item para excluir, independentemente da permissão do arquivo. A bandeira "-verbose" imprimirá a saída passo a passo para mais facilmente depuração.

$ Remove -item -verbose -force $ filelocation

Vamos atualizá -lo no script.

$ Filelocation = ""
if (teste de teste $ filelocation)
Remover -item -verbose -force $ filelocation
Write-host "$ filelocation é removido"

outro
Write-host "$ fileLocation não existe"

Pensamento final

Este guia mostra como verificar a existência de um arquivo e com base no resultado, como excluí-lo usando o cmdlet Remove-Item. Se o arquivo for somente leitura ou permissão negada, podemos usar o parâmetro "-force" para excluí-lo com força. Finalmente, implementamos todo o script.

Esta é uma maneira muito simples, mas eficaz de remover um arquivo/diretório de escolha. No entanto, como demonstrado, esse método geral é capaz de remover apenas um único item. É possível obter a lista de arquivos de um diretório e usar um loop para excluí -los incrementalmente.

Computação feliz!