windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本
Posted 终回首
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本相关的知识,希望对你有一定的参考价值。
某个文件夹下有几十个子文件夹,想要单个压缩每个子文件夹备份到云盘
如果手动操作会有点累,尝试写个脚本吧
版本
适用于win10、win11
其他版本未测试
一、编写脚本
众所周知windows下有两种自带脚本cmd和powershell,微软在主推powershell
百度搜索powershell文件压缩找到了Compress-Archive命令
查看官方文档中该命令的描述
根据文档编写脚本如下
# 传入父目录
param([string]$PathName)
# 遍历该父目录下的所有子目录与文件
foreach($file in dir $PathName)
# 打印文件名字
$File.Name
# 生成的源目录
$source=$PathName + "\\" + $File.Name
# 生成的压缩文件名
$target=$PathName + "\\" + $File.Name + ".zip"
# 执行压缩操作
Compress-Archive -Path $source -DestinationPath $target
在任意文件夹右键——>新建——>文本文档
将文件名改为zip_all.ps1——>点击是
右键点击文件——>点击打开方式
点击记事本——>点击确定
粘贴脚本到记事本里——>保存——>关闭记事本
二、执行脚本
1 打开powershell
点击开始菜单——>输入powershell——>点击以管理员身份运行——>点击是
2 执行脚本
2.1 修改权限
执行修改权限命令,键盘输入A
set-executionpolicy remotesigned
如果不修改权限就会像这里一样报个错
2.2 执行脚本
复制如下命令,按回车键执行启动脚本的命令
# 执行脚本,参数应该根据自己情况修改
powershell.exe E:\\tmp\\temp\\zip_all.ps1 -PathName "E:\\tmp\\tmp"
执行参数解释:
E:\\tmp\\temp\\zip_all.ps1
这里的E:\\tmp\\temp
是存放脚本的目录"E:\\tmp\\tmp"
这里的"E:\\tmp\\tmp"
是我要打包的所有子目录的父目录
执行打包脚本前的父目录
执行输出
打开目录,可以看到每个目录和文件都压缩好了
以上是关于windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本的主要内容,如果未能解决你的问题,请参考以下文章
windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本
6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩