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

Показать сообщение отдельно

Старожил


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

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


*** let me Google that for you ***
Код: Выделить весь код
$source_path = 'c:\Users\Serguei\Music\Folder with a ton of Music'
$destination_path = 'c:\temp'
$zip_filename = 'result'
$zip_path = "${destination_path}\${zip_filename}.zip"

[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | out-null
# create empty zip magic

set-content $zip_path ( [byte[]] @( 80, 75, 5, 6 + (, 0 * 18 ) ) ) -encoding byte

$source_folder = ( new-object -com 'Shell.Application' ).NameSpace( $source_path )

$zip_folder = ( new-object -com 'Shell.Application' ).NameSpace( $zip_path )

# запускаем на выполнение в диалог прогресс режиме, конца выполнения не ждём.
$zip_folder.CopyHere( $source_folder, 16 )

$check_count = (get-childitem -path $source_path ).count
$done = $false
# вот теперь ждем по большому

while ($done -eq $false){
  try{
    $check_zip = [IO.Compression.ZipFile]::OpenRead($zip_path)
    write-debug ('Counting items: {0}' -f ($check_zip.Entries).count )
    if( ($check_zip.Entries).count -eq $check_count){
      $check_zip.Dispose()
      $done = $true
      break
    }
  } catch [Exception] {
  }
  start-sleep -seconds 1
  write-host '.' -nonewline
}

Отправлено: 22:03, 11-08-2019 | #17