Powershell: обработка файлов в двух папках в зависимости от того, что в них находится

У меня есть два каталога: c:\Rar и c:\unRared.

Rar — содержит сотни RAR-файлов. Только один файл внутри RAR. Файл внутри архива имеет расширение *.TRN. UnRared имеет разархивированные файлы (сотни файлов с расширением *.TRN)

Я пытался создать сценарий Powershell для извлечения только тех файлов, которые еще не были извлечены.


person Mark Varnas    schedule 10.12.2010    source источник
comment
Дает ли имя rar-файла какое-либо указание на rar-файл внутри?   -  person zdan    schedule 10.12.2010


Ответы (2)


Разве вы не можете просто указать параметры любой имеющейся у вас программе сжатия, чтобы она не перезаписывала существующие файлы?

person phillip    schedule 10.12.2010

Вырубил сам... ну не совсем, с помощью разработчика

$dir1='C:\temp\aaa'
$dir2='C:\temp\bbb'
$CmdPath = "C:\Program Files (x86)\WinRAR\RAR.exe"
$Files2Extract = get-childitem -path 'C:\temp\aaa' -recurse -name -filter *.rar
#$d2 = get-childitem -path $dir2 -recurse

foreach($file in $Files2Extract){
    $justname =  $dir2+'\\'+(split-path $file -leaf).split(".")[0]+'.trn'

    if(!(Test-Path -path $justname)) {
        &$CmdPath e $file $dir2
    }

} 
person Mark Varnas    schedule 10.12.2010