2

Я пытаюсь сжать каждый файл в каталоге, но не могу заставить его использовать каталог или старое имя файла. Нужно удалить старый файл, чтобы он был защищен в zip-файле.

Это то, что я придумал до сих пор:

$files = Get-ChildItem "D:\Backuptest\input\*" | 
ForEach ($filename in $files) { 
    $content = Get-Content $_.FullName
    & "C:\Program Files\WinRAR\Rar.exe" a -m0 -hps8Cs7y7RfLjYgYb -k -df $filename.rar
    }

1 ответ1

1

PowerShell Rar: архивирование, шифрование и удаление нескольких файлов в папке

С Powershell и приведенным ниже синтаксисом я ....

  • установите переменные для исходного каталога вверх, чтобы указать путь к файлам для сжатия, и
  • установите переменную для директории назначения, указав путь к зашифрованным архивным файлам, в которые должны быть выведены rar,

таким образом, это делает его немного более явным, чем до того, как указывать, куда будут перемещаться файлы, прежде чем удалять их (не более /System32 и т. д.).

Этот способ использует ForEach (метод), чтобы получить имя файла объекта файла для файла в исходном каталоге, а затем один за другим он создаст новый зашифрованный RAR-файл с тем же именем файла, что и незашифрованный [исходный] файл, и добавьте .rar к концу. (Например, test123.txt будет зашифрован test123.txt.rar а затем test123.txt будет удален.)

Я думаю, что ваша проблема заключалась в том, что (1.) синтаксис неправильных команд rar или (2.) отсутствие целевого назначения в командах rar для выходного местоположения и неявного выполнения из этого каталога и просто вывода из него.


Скрипт Powershell

$Source      = Get-ChildItem "D:\Backuptest\input"
$Destination = "D:\Backuptest\input"
$RarApp      = "C:\Program Files\WinRAR\Rar.exe" 

ForEach ($files in $Source) { 
    & $RarApp a $($Destination + $files.Name + ".rar") $($files.FullName) -m0 -hps8Cs7y7RfLjYgYb -k -df
    }

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .