как скопировать файлы по другому пути с помощью Powershell? - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь скопировать файлы с powershell.

$datestamp = (Get-Date).ToString("yyyyMMdd")
    Copy-Item -Path \\User\LS\ADMIN\HW\DATA\Payroll\$datestamp\*.txt -Destination C:\Users\User1\Desktop\New folder

Файлы, которые я пытаюсь скопировать, имеют тип txt и путь к нему, и файлы расположены на две папки ниже $ datetamp. Я пытался с этим кодом, а не копирование файлов по пути, который я хотел. Есть ли способы исправить этот код для работы?

1 Ответ

2 голосов
/ 20 января 2020

То, что вы ищете, - это oop. Это будет циклически перебирать все *.txt файлы в местоположении и копировать их по запросу.

$datestamp = (Get-Date).ToString("yyyyMMdd")
$Files = Get-ChildItem -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$datestamp\" -Filter "*.txt"
Foreach($File in $Files) {
    Copy-Item -Path $File.FullName -Destination "C:\Users\User1\Desktop\New folder\"
}

Версия с одним вкладышем (по трубопроводу) будет выглядеть так:

Get-ChildItem 
    -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$((Get-Date).ToString("yyyyMMdd"))\" 
    -Filter "*.txt" `
    | % {
        Copy-Item 
            -Path $_.FullName 
            -Destination "C:\Users\User1\Desktop\New folder\"
    }

Все новые строки могут быть удалены из образца, это было сделано для форматирования, иначе это выглядит так:

Get-ChildItem -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$((Get-Date).ToString("yyyyMMdd"))\" -Filter "*.txt" | % {Copy-Item -Path $_.FullName -Destination "C:\Users\User1\Desktop\New folder\"}
...