Показать полную графическую версию : [решено] Powershell. Копировать файлы в новую dir, созданную с именем текущей даты
epoddubniy
12-07-2021, 21:14
Здравствуйте. Помогите пожалуйста реализовать.
Хочу скопировать файлы из директории "E:\share\test\1" в "E:\share\test\(значение текущей даты)"
$data = get-date -format "dd.MM.yyy"
copy-item E:\share\test\1 "E:\share\test" + "\" + $data
$src = 'C:\1'
$dst = "C:\$(Get-Date -f 'dd.MM.yyyy')"
cpi $src $dst -rec
epoddubniy
13-07-2021, 13:46
Спасибо!
epoddubniy
01-08-2021, 21:05
alpap, подскажите пожалуйста, как правильно написать код, если нужно скопировать файлы
из "E:\share\test\1" в "E:\share\test\2" и каждому скопированному файлу к имени файла добавить текущую дату?
Ну, например:
$sSourceFolder = 'E:\share\test\1'
$sDestFolder = 'E:\share\test\2'
$sCurrDate = Get-Date -Format 'yyyy.MM.dd'
Get-ChildItem -Path "$sSourceFolder\*" -File -Recurse |`
ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`t$sDestFolder\$($sCurrDate)_$($_.Name)"
Copy-Item -Path $_.FullName -Destination "$sDestFolder\$($sCurrDate)_$($_.Name)"
}
epoddubniy
02-08-2021, 09:43
Iska, скажите пожалуйста, а если код - такой:
$Data=Get-Date -Format "MM.dd.yyyy"
Get-ChildItem "E:\share\test\1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | copy-item -Destination "E:\share\test\2\(имя файла)_$Data.adi"
что и где нужно поменять, чтобы получить работающий код? (и, по возможности, без сохранения пути в переменную)
Iska, скажите пожалуйста, а если код - такой:
Код:
$Data=Get-Date -Format "MM.dd.yyyy"
Get-ChildItem "E:\share\test\1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | copy-item -Destination "E:\share\test\2\(имя файла)_$Data.adi"
что и где нужно поменять, чтобы получить работающий код? (и, по возможности, без сохранения пути в переменную) »
чтобы дата была в конце файла.
Попробовал, вот такой вариант Вашего кода:
$Data=Get-Date -Format "MM.dd.yyyy"
Get-ChildItem "E:\share\test\1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`E:\share\test\2\$($Data)_$($_.Name)"
Copy-Item -Path $_.FullName -Destination "E:\share\test\2\$($_.Name)_$Data.adi"
}
все получилось как надо, кроме вот этого (жирным шрифтом выделил):
Archive.adi_08.02.2021.adi
Файл Archive.adi попал в отбор, скопировался, но в середине имени - расширение файла
epoddubniy
02-08-2021, 16:18
Вот так - сработало:
$Data=Get-Date -Format "dd.MM.yyyy"
Get-ChildItem "E:\share\test\1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`E:\share\test\2\$($Data)_$($_.BaseName)"
Copy-Item -Path $_.FullName -Destination "E:\share\test\2\$($_.BaseName)_$Data.adi"
}
Всем еще раз Спасибо!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.