Цикл по группам файлов, таким как FileGroup159, FileGroup160 и т. Д. c. в Powershell - PullRequest
0 голосов
/ 08 марта 2020

Итак, я получил код, который работает так, как мне нравится для отдельных файлов. Основываясь на некоторых советах, приведенных ниже, я смог придумать следующее:

$Path = "C:\Users\User\Documents\PowerShell\"

$Num = 160
$ZipFile = "FileGroup0000000$Num.zip"
$File = "*$Num*.txt"
$n = dir -Path $Path$File | Measure

        if($n.count -gt 0){
        Remove-Item $Path$ZipFile
        Compress-Archive -Path $Path$File -DestinationPath $Path
        Rename-Item $Path'.zip' $Path'FileGroup0000000'$Num'.zip'          
        Remove-Item $Path$File            

        }    
        else {
            Write-Output "No Files to Move for FileGroup$File"
        }

Единственное, что мне нужно сейчас сделать, - это приращение $ Num после завершения программы каждый раз. Поэтому программа запустится, а затем переместит $ Num в 160, 161 и т. Д. c. и мне не придется повторно инициировать код вручную. Спасибо за помощь.

1 Ответ

0 голосов
/ 08 марта 2020

Ваше форматирование имени файла должно go внутри l oop, и вы должны использовать оператор Форматирования -f, чтобы получить предшествующие нули, например:

159..1250 | ForEach-Object {
    $UnzippedFile = 'FileGroup{0:0000000000}' -f $_
    $ZipFile = "$UnzippedFile.zip"
    Write-Host "Unzipping: $ZipFile"
    # Do your thing here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...