Это моя первая публикация, поэтому я прошу прощения, если форматирование неясно или неправильно.Я буду стараться изо всех сил, чтобы все выглядело лучше по ходу работы.
Я пытаюсь создать сценарий Power Shell, который создаст папку с годом и предыдущим месяцем.
Затем я хочу переместить определенный extили файлы только в папку, которая была создана.
Моя проблема сейчас заключается в том, что любой текстовый файл внутри Temp или Temp \ files будет перемещен в создаваемую папку.
Кроме того, файлы, которые были перемещены уже один раз, будут перемещены снова,месяц, и информация в предыдущей папке исчезнет.
Можно ли как-нибудь переместить файлы, находящиеся вне папки, в новую папку?
Теперь я хочу создать еще одну проблему.тот же формат даты, что и в качестве префикса к примеру текстового документа: 201902-_Name.txt
Я не разобрался со второй частью, и я вроде как разобрался с первой частью, за исключением того, что она захватывает что-либо внутри temp иперемещает его в новую папку, которую создает.
# Get the files which should be moved, without folders
$files = Get-ChildItem 'C:\Temp\' -Recurse | where {!$_.PsIsContainer}
# List Files which will be moved
$files
# Target Folder where files should be moved to. The script will automatically create a folder for the year and month.
$targetPath = 'C:\Temp\files\'
foreach ($file in $files){
# Get year and Month of the file
# I used LastWriteTime since this are synced files and the creation day will be the date when it was synced
$year = $file.LastWriteTime.Year.ToString()
$month = (Get-Date).AddMonths(-1).ToString('MM')
$monthname = (Get-Culture).DateTimeFormat.GetAbbreviatedMonthName($month)
# Out FileName, year and month
$file.Name
$year
$month
$monthname
# Set Directory Path
$Directory = $targetPath + "\" + $year + $month
# Create directory if it doesn't exsist
if (!(Test-Path $Directory)){
New-Item $directory -type directory
}
# Move File to new location
$file | Move-Item -Destination $Directory
}