Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Powershell. Копировать файлы в новую dir, созданную с именем текущей даты

Ответить
Настройки темы
PowerShell - [решено] Powershell. Копировать файлы в новую dir, созданную с именем текущей даты

Пользователь


Сообщения: 105
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте. Помогите пожалуйста реализовать.
Хочу скопировать файлы из директории "E:\share\test\1" в "E:\share\test\(значение текущей даты)"

Код: Выделить весь код
$data = get-date -format "dd.MM.yyy" 
copy-item E:\share\test\1 "E:\share\test" + "\" + $data

Отправлено: 21:14, 12-07-2021

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$src = 'C:\1'
$dst = "C:\$(Get-Date -f 'dd.MM.yyyy')"

cpi $src $dst -rec
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:54, 12-07-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 105
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо!

Отправлено: 13:46, 13-07-2021 | #3


Пользователь


Сообщения: 105
Благодарности: 1

Профиль | Отправить PM | Цитировать


alpap, подскажите пожалуйста, как правильно написать код, если нужно скопировать файлы
из "E:\share\test\1" в "E:\share\test\2" и каждому скопированному файлу к имени файла добавить текущую дату?

Отправлено: 21:05, 01-08-2021 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ну, например:
Код: Выделить весь код
$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)"
    }
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:26, 01-08-2021 | #5


Пользователь


Сообщения: 105
Благодарности: 1

Профиль | Отправить PM | Цитировать


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"
что и где нужно поменять, чтобы получить работающий код? (и, по возможности, без сохранения пути в переменную)

Цитата epoddubniy:
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 попал в отбор, скопировался, но в середине имени - расширение файла

Отправлено: 09:43, 02-08-2021 | #6


Пользователь


Сообщения: 105
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вот так - сработало:

Код: Выделить весь код
$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"
    }
Всем еще раз Спасибо!

Отправлено: 16:18, 02-08-2021 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Powershell. Копировать файлы в новую dir, созданную с именем текущей даты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копировать файл с присвоением имени из списка в папку с текущей датой blither Скриптовые языки администрирования Windows 3 05-03-2016 09:18
CMD/BAT - Узнать даты понедельника и пятницы текущей недели V!RTuE Скриптовые языки администрирования Windows 1 28-02-2015 22:31
Разное - [решено] Не запускаются файлы с именем setup.exe (именно с именем) Temix Microsoft Windows 8 и 8.1 13 12-12-2014 22:05
Любой язык - копировать файл в каталог с текущей датой и сквозной порядковый номер в именах файлов opensrs Скриптовые языки администрирования Windows 1 29-05-2013 06:45
CMD/BAT - Сранение даты из файла с текущей датой InVariable Скриптовые языки администрирования Windows 0 07-02-2012 11:53




 
Переход