PowerShell Rar Archive, Encrypt, and Delete Multiple Files in a Folder
Com o Powershell e a sintaxe abaixo, eu ....
- defina as variáveis para o diretório source na parte superior para informar o caminho para que os arquivos sejam compactados e
- defina a variável para o diretório destination informando que o caminho para os arquivos zip arquivados criptografados devem ser enviados para ,
, o que o torna um pouco mais explícito do que era antes de informar onde os arquivos irão antes de excluí-los (não mais /System32
, etc,).
Desta forma, usa o ForEach (método) para obter o nome de arquivo do objeto de arquivo por arquivo no diretório de origem e em seguida, um-por-um, ele criará um novo arquivo criptografado com o mesmo nome que o arquivo não criptografado [source] e anexará o arquivo .rar ao final dele. ( Por exemplo, test123.txt
ficará test123.txt.rar
criptografado e test123.txt
será excluído. )
Acho que o seu problema foi (1.) a sintaxe dos comandos rar não sendo correto, ou (2.) não tendo o destino nos comandos rar para o local de saída e que está sendo executado implicitamente a partir daquele diretório e apenas produzindo lá.
Script 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
}