我正在尝试压缩目录中的所有文件,但似乎无法使用目录或旧文件名。它需要删除旧文件,以便它在 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
PowerShell Rar 存档、加密和删除文件夹中的多个文件
和电源外壳以及下面的语法我....
- 设置变量来源目录顶部告诉它 小路获取要压缩的文件, 和
- 设置变量 目的地目录告诉它小路 加密档案 rar 文件将被输出到,
因此,这使得它比以前更明确地告诉它在删除文件之前文件将存放到哪里(不再/System32
, ETC,)。
这种方式使用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
}