博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Powershell管理系列(二十一)PowerShell操作之不同文件夹内文件合并
阅读量:6368 次
发布时间:2019-06-23

本文共 2340 字,大约阅读时间需要 7 分钟。

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750

需求:服务器使用几年下来,发现我们的磁盘下有多个类似的文件夹,我们想把这个文件夹合并到一个指定的文件夹,并删除其他不在使用的文件夹。

步骤1、我们打开我们的服务器, D盘下有5个各年信息资料汇总的文件夹, 里面有些文件是一样的,有些是不一样的.如下图:

步骤2、搜索出这5个文件夹的文件,并把往年的文件夹逐一和最新的"15年信息资料汇总"进行比对,如文件名不一样则将其复制到"15年信息资料汇总"。

 

$total11=Get-ChildItem "d:\11年信息资料汇总"  | foreach {$_.name}  #不要遍历查找,子文件夹直接复制

$total12=Get-ChildItem "d:\12年信息资料汇总"  | foreach {$_.name}  #不要遍历查找,子文件夹直接复制$total13=Get-ChildItem "d:\13年信息资料汇总"  | foreach {$_.name}  #不要遍历查找,子文件夹直接复制$total14=Get-ChildItem "d:\14年信息资料汇总"  | foreach {$_.name}  #不要遍历查找,子文件夹直接复制$total15=Get-ChildItem "d:\15年信息资料汇总"  | foreach {$_.name}  #不要遍历查找,子文件夹直接复制

Get-childItem -Recurse -path "d:\15年信息资料汇总" -Include "复制文件日志.txt" | Clear-Content

foreach($a11 in $total11)
{
if($a11 -notin $total15)  #假如11年的文件夹里面的文件在15年文件夹里面均不存在,在从11复制到15
{Copy-Item  -Path "d:\11年信息资料汇总\$a11" -Recurse -Destination d:\15年信息资料汇总
write-host "在11年信息资料汇总中找到新文件 $a11 并复制到15年信息资料汇总"
$a111="在11年信息资料汇总中找到新文件 $a11 并复制到15年信息资料汇总"
$a111| Out-File "D:\15年信息资料汇总\复制文件日志.txt" -Append -Encoding utf8  #输出到日志,方便比对
}
}

$total15=Get-ChildItem "d:\15年信息资料汇总"  | foreach {$_.name}  #因为15年文件夹已更新,所以需重新查找

foreach($a12 in $total12)
{
if($a12 -notin $total15) #假如12年的文件夹里面的文件在15年文件夹里面均不存在,在从12复制到15

{Copy-Item -Path "d:\12年信息资料汇总\$a12" -Recurse  -Destination d:\15年信息资料汇总

write-host "在12年信息资料汇总中找到新文件 $a12 并复制到15年信息资料汇总"
$a222="在12年信息资料汇总中找到新文件 $a12 并复制到15年信息资料汇总"
$a222| Out-File "D:\15年信息资料汇总\复制文件日志.txt" -Append -Encoding utf8  #输出到日志,方便比对}
}

$total15=Get-ChildItem "d:\15年信息资料汇总"  | foreach {$_.name} #因为15年文件夹已更新,所以需重新查找

foreach($a13 in $total13)
{
if($a13 -notin $total15) #假如13年的文件夹里面的文件在15年文件夹里面均不存在,在从13复制到15

{Copy-Item -Path "d:\13年信息资料汇总\$a13" -Recurse  -Destination d:\15年信息资料汇总

write-host "在13年信息资料汇总中找到新文件 $a13 并复制到15年信息资料汇总"
$a333="在13年信息资料汇总中找到新文件 $a13 并复制到15年信息资料汇总"
$a333| Out-File "D:\15年信息资料汇总\复制文件日志.txt" -Append -Encoding utf8  #输出到日志,方便比对

}

}

$total15=Get-ChildItem "d:\15年信息资料汇总"  | foreach {$_.name} #因为15年文件夹已更新,所以需重新查找

foreach($a14 in $total14)
{
if($a14 -notin $total15) #假如14年的文件夹里面的文件在15年文件夹里面均不存在,在从14复制到15

{Copy-Item -Path "d:\14年信息资料汇总\$a14" -Recurse  -Destination d:\15年信息资料汇总

write-host "在14年信息资料汇总中找到新文件 $a14 并复制到15年信息资料汇总"
$a444="在14年信息资料汇总中找到新文件 $a14 并复制到15年信息资料汇总"
$a444| Out-File "D:\15年信息资料汇总\复制文件日志.txt" -Append -Encoding utf8 #输出到日志,方便比对

}

}

步骤3、执行后最终效果如下:

 

 

转载地址:http://uuema.baihongyu.com/

你可能感兴趣的文章
地图点聚合优化方案
查看>>
Google Chrome 快捷方式
查看>>
备考PMP心得体会
查看>>
vue proxy匹配规则
查看>>
线上应用故障排查之一:高CPU占用
查看>>
Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)
查看>>
IronPython教程
查看>>
squid via检测转发循环
查看>>
计算分页
查看>>
iptables 做nat路由器脚本
查看>>
数据结构(C语言版)第三章:栈和队列
查看>>
Stopping and/or Restarting an embedded Jetty in...
查看>>
Oracle存储过程中的数据集输入参数
查看>>
vsftp 配置
查看>>
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>