Я пытаюсь скопировать файлы в определенную папку на основе имени файла.
Например:
Текущая папка - C: \ Stuff \ Old Files \
Файл - 206.Little Rock.map.pdf
Папка назначения - D: \ Cleanup \ 206 \ Repository
Таким образом, в основном, ведущее число в файле (206) является частьюподпапка.«\ Репозиторий» останется неизменным.Изменится только начальный номер.
Если файл 207.Little Rock.map.pdf, тогда папка назначения будет
D: \ Cleanup \ 207 \ Repository
Я начал с кода, который получил отсюда, но я не уверен, как учесть изменение номера и как заставить его создать папку, если папка не существует.Так что 206 \ Repository, вероятно, уже существует, но мне понадобится сценарий для создания папки, если она не существует.
$SourceFolder = "C:\Stuff\Old Files\"
$targetFolder = "D:\Cleanup\"
$numFiles = (Get-ChildItem -Path $SourceFolder -Filter *.pdf).Count
$i=0
clear-host;
Write-Host 'This script will copy ' $numFiles ' files from ' $SourceFolder ' to ' $targetFolder
Read-host -prompt 'Press enter to start copying the files'
Get-ChildItem -Path $SourceFolder -Filter *.PDF | %{
[System.IO.FileInfo]$destination = (Join-Path -Path $targetFolder -ChildPath $Name.Repository(".*","\"))
if(!(Test-Path -Path $destination.Directory )){
New-item -Path $destination.Directory.FullName -ItemType Directory
}
[int]$percent = $i / $numFiles * 100
copy-item -Path $_.FullName -Destination $Destination.FullName
Write-Progress -Activity "Copying ... ($percent %)" -status $_ -PercentComplete $percent -verbose
$i++
}
Write-Host 'Total number of files read from directory '$SourceFolder ' is ' $numFiles
Write-Host 'Total number of files that was copied to '$targetFolder ' is ' $i
Read-host -prompt "Press enter to complete..."
clear-host;