Copiar arquivo e renomear PowerShell

Copiar arquivo e renomear PowerShell

O objetivo principal deste artigo é demonstrar a operação de I/O mais básica, copiar um arquivo e depois colá-lo em outro diretório ou local com um nome diferente.

PowerShell Copiar Arquivo e Renomear

Ao lidar com arquivos CSV, pode ser necessário copiar um arquivo CSV específico e colá-lo em outro lugar com seu nome de arquivo extraído do CSV.

Considere o seguinte CSV:

iid  firstname   lastname    profession     oldfilepath newfilename
--  ---------   --------    ----------     ----------- -----------
100 Annecorinne Fitzsimmons doctor         D:\\old.csv new2.csv
101 Mallory     Dunkin      firefighter    D:\\old.csv new3.csv
102 Carlie      Torray      firefighter    D:\\old.csv new4.csv
103 Marleah     Boycey      worker         D:\\old.csv new5.csv
104 Lusa        Corabella   worker         D:\\old.csv new6.csv
105 Shandie     Chesna      worker         D:\\old.csv new7.csv
106 Melisent    Ochs        doctor         D:\\old.csv new8.csv
107 Cathie      Hurley      firefighter    D:\\old.csv new9.csv
108 Kerrin      Regan       doctor         D:\\old.csv new10.csv
109 Alie        Lewes       police officer D:\\old.csv new11.csv
110 Jsandye     Gemini      police officer D:\\old.csv new12.csv
111 Marguerite  Myrilla     police officer D:\\old.csv new13.csv
112 Florie      Dichy       developer      D:\\old.csv new14.csv
113 Krystle     Gaulin      doctor         D:\\old.csv new15.csv
114 Odessa      Nerita      developer      D:\\old.csv new16.csv

Agora precisamos copiar este CSV e colá-lo em outro diretório com um nome personalizado, que vem de uma coluna do arquivo CSV. Neste caso, a coluna é chamada newfilename.

Considere o seguinte código:

$csv = "D:\\old.csv"

Import-Csv $csv | % { Write-Host "Copying $($_.oldfilepath) to D:\TEST\$($_.newfilename)..." | Copy-Item $_.oldfilepath -Destination "D:\TEST\$($_.newfilename)" }

Após isso, podemos verificar se o arquivo foi copiado usando o seguinte:

> .\script.ps1
> ls D://TEST

   Directory: D:\TEST

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           11/1/2022 10:27 PM            861 new10.csv
-a---           11/1/2022 10:27 PM            861 new11.csv
-a---           11/1/2022 10:27 PM            861 new12.csv
-a---           11/1/2022 10:27 PM            861 new13.csv
-a---           11/1/2022 10:27 PM            861 new14.csv
-a---           11/1/2022 10:27 PM            861 new15.csv
-a---           11/1/2022 10:27 PM            861 new16.csv
-a---           11/1/2022 10:27 PM            861 new2.csv
-a---           11/1/2022 10:27 PM            861 new3.csv
-a---           11/1/2022 10:27 PM            861 new4.csv
-a---           11/1/2022 10:27 PM            861 new5.csv
-a---           11/1/2022 10:27 PM            861 new6.csv
-a---           11/1/2022 10:27 PM            861 new7.csv
-a---           11/1/2022 10:27 PM            861 new8.csv
-a---           11/1/2022 10:27 PM            861 new9.csv

Usando o código acima, podemos extrair o arquivo que deve ser copiado de uma das colunas e o nome do novo arquivo a ser salvo.

O fluxo geral do programa é o seguinte:

  1. O caminho do arquivo CSV de onde extrair o caminho e o nome do arquivo é armazenado em uma variável chamada csv. O símbolo $ é usado principalmente para declarar e acessar/configurar variáveis no PowerShell.
  2. O comando Import-csv extrai os dados do arquivo CSV.
  3. Após os dados relevantes terem sido extraídos, eles são encaminhados para o seguinte comando usando o operador |.
  4. O operador % (um alias para o loop foreach) é usado para extrair dados das colunas oldfilepath iterativamente e newfilename, que são então passados para o comando Copy-Item para copiar o arquivo da fonte dada para o destino (não especificado no CSV no nosso caso).
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artigo relacionado - PowerShell File