我想制作一个可以压缩或解压缩文件的 BAT 文件。对于压缩文件,我发现了这个问题: 您能否仅使用 Windows 的内置压缩文件功能从命令提示符压缩文件?
那里给出的答案很好,对我有用,但我找不到有关如何解压缩文件的任何信息。就像在链接中一样,我不能假设任何第三方工具(winRAR 除外)。
预先感谢并为英语错误感到抱歉
在 PowerShell 脚本中,我想在删除文件夹之前压缩文件夹。我运行以下(我不记得我在哪里找到的代码段):
function Compress-ToZip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(Get-ChildItem $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
}
}
Run Code Online (Sandbox Code Playgroud)
此代码段实际上压缩了文件夹,但以异步方式进行。实际上,Shell.Application 对象的 CopyHere 方法开始压缩并且不等待其完成。我的脚本的下一个语句然后搞砸了(因为 zip 文件过程没有完成)。
有什么建议?如果可能的话,我想避免添加任何可执行文件并继续使用纯 Windows 功能。
[编辑] 我的 PS1 文件的全部内容减去数据库的实际名称。该脚本的目标是备份一组 SQL 数据库,然后将备份压缩在一个以当前日期命名的文件夹中的单个包中:
$VerbosePreferenceBak = $VerbosePreference
$VerbosePreference = "Continue"
add-PSSnapin SqlServerCmdletSnapin100
function BackupDB([string] $dbName, [string] $outDir)
{
Write-Host "Backup de la base : $dbName"
$script = "BACKUP …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个命令行命令来压缩文件。我想将每个文件单独压缩为 filename.zip。
我发现的所有方法包括: http ://exchangeserverpro.com/powershell-script-iis-logs-cleanup/
和:
就在附近,但不完全是我需要的。有什么建议吗?如果可能的话,我希望在没有外部软件(如 7-zip)的情况下实现这一点。它可以是一个 Power shell 脚本。
windows ×2
zip ×2
backup ×1
cmd.exe ×1
command-line ×1
compression ×1
database ×1
powershell ×1