Windows脚本对最后修改时间超过24小时的文件进行处理

2 篇文章 0 订阅
1 篇文章 0 订阅

这次我接到一个任务,是写一个windows上运行的脚本,讲某个文件夹下最后修改时间超过24小时的文件移到另一个文件夹,然后在判断有生成的文件超过十分钟的关闭一个程序再启动它。上网搜了一下,有很多相关的,比如说把最后修改时间的文件超过一天的删除掉,如果用bat来写方法很多但异常麻烦,感觉版本之间还有差异。最难受的是人家要的是超过二十四小时,你如果想把前一天的文件判断出来很容易,用里面vbs或者别的方法获取,判断不是今天就OK了。有时间限制,如果昨天晚上的文件,今天处理掉了就不符合要求了。bat文件可以取日期,但是你要做个二十四小时的判断再判断有没有超过15分钟,太复杂太难了,甚至还要修改一下系统注册表,改完使用后再改回去,而且版本之间有差异,也许起作用但会在命令行报错。
后来客户提醒说用powershell来做更好,给了我个例子,我研究了一下感觉打开了一个新的世界大门。powershell功能很强大,很多函数可以用,界面看起来也比CMD的命令行帅气的多。bat批处理文件跟他比起来差很多,也好用不用绞尽脑汁想方法组合起来完成一些功能,这里面函数很多很方便,确实是powerful shell强大的shell。
话不多说,把我的代码放出来看看。

下面是我的一个脚本zp.ps1(中间没有把关闭程序和启动程序加进去,我在后面又写了个小脚本来给大家参考关于程序关闭启动,很简单。),要输入参数一个是expire(大小写都行,程序有处理)另一个是一个路径
进入powershell,不关你是直接进入还是通过命令行(当然你第一次用要把脚本权限放开,类似我们浏览器要把js限制打开,可用set-executionpolicy remotesigned,最好是管理员身份在powershell命令行下输入。)
输入以下命令运行脚本
zp.ps1 expire E:\powershell

    Param ( [string] $monitor_option , [string] $monitor_path)

New-Variable const_expire_hours -24
New-Variable const_expire_minutes -10


New-Variable files (Get-ChildItem $monitor_path\*.csv)



New-Variable files_expire_cnt 0
New-Variable files_exceeded_cnt 0
New-Variable files_cnt 0

#Current date time
$Current_date_time=Get-Date
 Write-Output (" Current date time: " + $Current_date_time )

#Folder to check
 Write-Output (" Folder to check: " + $monitor_path )

#.csv files in  %PATH%($monitor_path) last modified date 
ForEach ($file in $files) {

Write-Output ( $file.Name+ ".csv files in  " + $monitor_path + " last modified date " + $file.LastWriteTime)
}



ForEach ($file in $files) {
$now=Get-Date
    If ($file.LastWriteTime -lt $now.AddHours($const_expire_hours)) { $files_expire_cnt += 1 }

}


#24 hours
If ($monitor_option.ToLower() -eq "expire") {

Write-Output ("No of CSV files exceeeded 24 hours: " + $files_expire_cnt)

If ($files_expire_cnt -gt 0) { 

    ForEach ($file in $files) {

        If ($file.LastWriteTime -lt $now.AddHours($const_expire_hours)) {

            Move-Item -path $file -destination $monitor_path\expired

            Write-Output ( $file.Name + " moved to " + $monitor_path + "\expired" )

        }

    }

   # Exit $files_expire_cnt 

}
}
#10 minuters
ForEach ($file in $files) {
$now=Get-Date
    If ($file.LastWriteTime -lt $now.AddMinutes($const_expire_minutes)) { $files_exceeded_cnt += 1 }

}
If ($monitor_option.ToLower() -eq "expire") {

Write-Output ("No of CSV files exceeeded 10 minutes: " + $files_exceeded_cnt)

If ($files_exceeded_cnt -gt 0) { 

        ForEach ($file in $files) {

                        If ($file.LastWriteTime -lt $now.AddMinutes($const_expire_minutes)) {

                Write-Output ( $file.Name + " exceeded " + $monitor_path  )


            }

        }

        Exit $files_exceeded_cnt

    }

    Exit 0

}

下面是我写的一个启动程序小脚本,不需要参数,大家可以玩一下,根据自己想法启动关闭程序#是注释大家可以打开注释,每个命令都玩一下。powershell让我对微软印象提升了不少,没想到我们天天用的Windows系统还有这个功能,真是涨了见识。
process.ps1
Start-Process notepad -Verb runas
#Start-Process notepad -Verb runas
#dota2launcher
#Start-Process E:\DOTA2Setup20161010\Dota2\dota2launcher -Verb runas
#Stop-Process E:\DOTA2Setup20161010\Dota2\dota2launcher
#get-help Stop-Process -examples
#stop-process -name dota2launcher
#set-executionpolicy remotesigned

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章安装和升级到WindowsServer20161小时10分钟7节 1-1高端IT运维职位需要掌握的技能04:40 1-2介绍WindowsServer2016版本07:56 1-3在虚拟机中安装WindowsServer201619:14 1-4使用服务器操作系统09:43 1-5根据用户的习惯更改系统设置07:42 1-6Windows常用命令11:24 1-7管理硬件驱动09:37 第2章管理Windows用户和组1小时48分钟9节 2-1管理Windows用户04:50 2-2管理Windows组09:34 2-3用户和组的SID 用户登录令牌07:42 2-4使用命令管理用户和组06:10 2-5修改和重设用户密码 使用密码重设盘重设密码10:52 2-6管理 缓存的凭据14:29 2-7利用缓存的凭据 **服务器24:18 2-8访问网络资源不需要输入用户名和密码的3种情况12:11 2-9管理用户配置文件18:52 第3章搭建域环境53分钟6节 3-1计算机组织形式-域和工作组08:46 3-2安装活动目录WindowsServer2016变为08:55 3-3安装活动目录后的检查09:00 3-4将计算机加入域07:54 3-5统一身份验证09:33 3-6统一管理域用户09:44 第4章NTFS文件系统3小时5分钟19节 4-1FAT分区和NTFS分区06:48 4-2文件夹的NTFS权限-读取和列出内容13:36 4-3文件夹权限-读取和执行08:13 4-4NTFS权限继承管理10:39 4-5NTFS权限累加 拒绝优先04:18 4-6高级NTFS权限05:38 4-7案例1-只允许用户创建文件夹 不允许访问其他人创建文件夹09:27 4-8案例2-学生提交作业文件 只允许上传文件 查看自己的文件06:34 4-9案例3-提交的文件不允许再修改或删除10:33 4-10获取所有权 重置文件夹内文件的权限10:19 4-11EFS加密文件系统原理13:59 4-12使用EFS加密文件 导出秘钥13:30 4-13使用企业CA为域用户颁发EFS证书12:44 4-14使用Bitlocker加密整个磁盘分区10:44 4-15指定EFS故障恢复秘钥 解密域中所有用户加密的文件09:54 4-16NTFS文件系统压缩文件夹09:01 4-17配置磁盘限额 限制用户使用磁盘空间09:58 4-18卷影副本 允许保存多个版本11:05 4-19企业客户答疑:EFS加密后打不开查找原因08:58 第5章搭建文件服务器2小时25分钟13节 5-1共享权限和NTFS权限16:05 5-2多次共享和隐藏共享04:28 5-3管理默认共享07:19 5-4使用net share命令管理共享07:45 5-5脱机访问共享文件夹11:44 5-6访问共享文件夹排错14:33 5-7将共享文件夹发布到活动目录10:30 5-8配置域用户登录自动映射网络驱动器04:11 5-9文件资源管理器限制文件夹的大小和存放文件的类型12:54 5-10分布式文件系统(DFS)整合企业共享资源17:08 5-11配置DFS实现多服务器上的文件夹实时同步和访问负载均衡15:45 5-12配置DFS单向复制12:06 5-13DFS实现数据收集和分发11:13 第6章服务器性能优化54分钟4节 6-1使用任务管理器监控内存和CPU的使用情况17:28 6-2使用资源管理器监控性能08:15 6-3性能监视器监控性能指标19:47 6-4管理Windows日志08:52 第7章配置系统安全策略1小时27分钟8节 7-1配置账户密码策略20:21 7-2账户锁定策略09:55 7-3制定审核策略记录**事件14:18 7-4用户对操作系统的权限分配12:07 7-5安全选项06:57 7-6软件限制策略12:45 7-7使用本地组策略管理用户和计算机的安全06:14 7-8配置登录脚本 有人登录服务器给你的手机发短信05:02 第8章在企业环境部署打印机1小时7节 8-1配置打印服务器15:43 8-2连接网络打印机10:49 8-3使用组策略部署打印机09:42 8-4设置打印权限05:50 8-5设置打印机的优先级08:00 8-6启用打印池实现打印任务负载均衡06:21 8-7通过http发送打印作业03:58 第9章磁盘管理2小时18分钟13节 9-1MBR和GPT磁盘分区13:32 9-2基本磁盘管理-创建分区 格式化 指定盘符09:56 9-3扩展分区和减少分区大小02:29 9-4管理盘符和路径15:56 9-5动态磁盘-简单卷07:03 9-6动态磁盘-带区卷(RAID-0)08:28 9-7动态磁盘-镜像卷(RAID-1)05:48 9-8动态磁盘-RAID-509:53 9-9为不同的数据选择不同类型的卷09:20 9-10移动动态磁盘到其他计算机04:43 9-11创建存储池和虚拟磁盘23:54 9-12介绍iSCSI10:10 9-13连接iSCSI网络存储17:28 第10章远程桌面36分钟6节 10-1启用远程桌面18:34 10-2将本地磁盘和打印机映射到远程05:03 10-3取消一个用户一个会话的限制04:03 10-4远程桌面网络级身份验证的意义03:37 10-5更改远程桌面使用的端口03:11 10-6保存访问远程桌面的凭证02:08 第11章将多个网卡捆绑成一个网卡和网络负载均衡技术52分钟7节 11-1网卡组合技术05:23 11-2配置网卡组验证容错13:50 11-3网络负载均衡技术(NLB)03:47 11-4配置网络负载均衡(NLB)14:36 11-5NLB参数调整06:25 11-6配置思科路由器支持服务器NLB05:36 11-7配置华为路由器支持服务器NLB03:16 第12章故障转移群集1小时57分钟13节 12-1介绍故障转移群集08:30 12-2安装活动目录搭建域环境08:21 12-3将节点加入域08:29 12-4配置和连接网络存储11:21 12-5安装和配置故障转移群集08:27 12-6创建Windows群集 指定仲裁磁盘14:54 12-7配置文件服务器群集12:56 12-8创建DHCP服务群集15:11 12-9配置SQL2016群集12:23 12-10在SQL群集中添加SQL节点02:51 12-11安装SQL管理工具02:54 12-12测试SQL2016故障转移群集故障切换06:38 12-13将节点退出群集 加入群集 销毁SQL群集04:48 第13章Windows高级防火墙1小时15分钟7节 13-1介绍WindowsServer2016高级防火墙04:22 13-2设置入站规则16:00 13-3创建出站规则12:52 13-4根据应用程序创建入站入站规则03:05 13-5限制入站规则源地址和出站规则目标地址08:08 13-6IPSec实现加密通信开始学习 13-7使用组策略控制域中计算机网络安全17:07

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值