У меня старый внешний диск (F :) с множеством папок и файлов внутри. Я хочу переместить все файлы на новый диск (G :).
Будет ли возможно достичь приведенной ниже структуры?
«Год \ Месяц \ по расширению» Он может использовать исходная дата создания ..
Итак, если у меня есть «Picture.jpg
» из 15/01/2020
и, если у меня есть «Document.doc
» из 15/01/2020
, тогда оно должно go на:
G:\2020\01\JPG\Picture.jpg
G:\2020\01\DOC\Document.doc
И так далее?
Я попробовал следующее, и он смог переместиться в папку года и папку месяца, хотя я заметил, что имя папки месяца для января было 1 вместо из 01:
https://www.thomasmaurer.ch/2015/03/move-files-to-folder-sorted-by-year-and-month-with-powershell/
Любая помощь будет принята с благодарностью, большое спасибо.
-
Большое спасибо за помощь, он работает очень хорошо, и я смог легко скопировать все файлы.
Я смотрел данные, кажется, с помощью Copy, он перезаписывает, если есть два файла с одинаковым именем файла, поэтому я настроил команду копирования, чтобы переместить вместо этого. Некоторые другие изменения, которые я внес в пункт назначения: расширение \ год \ месяц формат:
# Get all files
Get-ChildItem F:\ -File -Recurse | ForEach-Object {
# Get the modified date
$dt = Get-Date $_.LastWriteTime
$year = $dt.Year
$month = $dt.Month
# This adds "0" in front of the 1-9 months
if($dt.Month -lt 10) {
$month = "0" + $dt.Month.ToString()
} else {
$month = $dt.Month
}
# Remove leading '.' from the extension
$extension = $_.Extension.Replace(".", "")
# Where we want to move the file
$destinationFolder = "G:\$extension\$year\$month\"
# Ensure full folder path exists
if(!(Test-Path $destinationFolder)) {
New-Item -ItemType Directory -Force -Path $destinationFolder
}
# Copy/Move the item to it's new home
Move-Item $_.FullName $destinationFolder
}
Этот код пока замечательный, если можно добавить следующее - он будет полным:
Если "Picture.jpg" уже существует в папке назначения, можно ли его добавить, например, как "Picture_1.jpg, чтобы при просмотре я мог проверить, действительно ли это дубликат? Большое спасибо.