PowerShell 调试器
在开始运行处,输入powershell ISE回车即可
PowerShell 与操作系统版本
powershell在windows server 2008上自带,但最好在版本号为6.0.7600上使用,6.0.6001版本的server 2008自带的powershell缺少很多常用的功能
PowerShell 比较运算符
-eq 等于 10 -eq 10 true
-ne 不等于 10 -ne 10 false
-gt 大于 10 -gt 10 false
-ge 大于 10 -ge 10 true
或等于
-lt 小于 10 -lt 10 false
-le 小于或等于 10 -le 10 true
PowerShell中命令的返回
$java_process=get-process java
以上命令会将进程中所有的java进程以System.Diagnostics.Process对象数组的方式返回,那么$java_process这个变量即为一个对象数组
PowerShell 数组遍历
$java_process=get-process java
foreach($p in $java_process){
echo $p.Id
}
以上命令的结果是打印出系统进程中所有java进程的进程id
PowerShell 注释
powershell以"#"号为单行注释,例如:
# 定义i为0
$i = 0
多行注释如下
<#
用于多行注释
#>
$i = 0
PowerShell 读取文件并返回以行为数组元素的数组
# 读取C:1.txt内容并输出到D:1.txt,其中|管道符后的%代表遍历读取命令后的数组,$_代表每次遍历的值
Get-Content "C:1.txt"|%{
echo $_>>D:1.txt
}
PowerShell 查找数组中最大最小值
$list = 1,4,3,1,3,12,990
$result = $list | Measure-Object -Minimum -Maximum
$result.Minimum
$result.Maximum
还可以对日期类型的查找,但实验证明,只有高版本的powershell才支持日期类型
$list = Get-ChildItem -Path C:windows
$result = $list | Measure-Object -Property LastWriteTime -Minimum -Maximum
$result.Minimum
$result.Maximum
PowerShell创建文件文件夹
new-item -path C: -name backup -type directory #创建目录
new-item -path C: -name backup.txt -type file #创建文件
PowerShell无声强行删除文件夹以及其下的子项
remove-item C:data_old -force -recurse
PowerShell创建windows任务计划
#创建一个任务计划管理对象并获取任务计划根目录
$service = new-object -com("Schedule.Service")
$service.connect($env:COMPUTERNAME)
$RootFolder = $service.getfolder("")
#创建task对象
$Task = $service.NewTask(0)
#给task起个名字
$RegInfo = $Task.RegistrationInfo
$Reginfo.Description = "test"
#设置任务不要立刻运行
$Settings = $Task.Settings
$Settings.StartWhenAvailable = $false
#为任务创建触发器(这里多说一句,要想让powershell做些管理windows的工作,就必须去读msdn的文档,对于我这种java党,学起来真费劲)
#参考资料:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383898(v=vs.85).aspx
$Triggers = $Task.Triggers
$Trigger = $Triggers.Create(3) #3指的是周任务
#为任务设置有效期,以及每周 周几 几点 运行
#下面的例子是有效期为2014-12-9 4点到2130-8-6 12点为有效期,每周6的4点开始运行任务
$Starttime = "2014-12-09T04:00:00"
$Endtime = "2130-08-06T12:00:00-05:00"
$Trigger.StartBoundary = $Starttime
$Trigger.EndBoundary = $Endtime
$Trigger.DaysOfWeek=64 #64代表周6,具体http://msdn.microsoft.com/en-us/library/windows/desktop/aa384024(v=vs.85).aspx
$Trigger.WeeksInterval=1#设置为1代表每周
#为任务创建运行程序
#以下例子会在触发运行后,运行powershell -ExecutionPolicy RemoteSigned -noprofile -noninteractive -file backup.ps1这条命令
$Action = $Task.Actions.Create(0)
$Action.Path = "powershell" #要运行的程序,可以写路径
$Action.Arguments ="-ExecutionPolicy RemoteSigned -noprofile -noninteractive -file backup.ps1" #powershell运行时的参数
$Action.WorkingDirectory = "C:"#有些程序需要指定运行环境目录,例如这个例子中需要用powershell运行backup.ps1脚本,那么就要指定运行环境为C:下,否则会找不到
#将任务写入
$Rootfolder.RegisterTaskDefinition("起个名字", $Task,6,"你的用户名","你的密码",6)
PowerShell逻辑运算
Powershell 对象判空
if(get-process java){
#... ...
}
PowerShell 拷贝
# 拷贝当前目录下所有文件到temp文件夹下,且不拷贝以SHQS开头和文件名中含有1的文件
Copy-Item *.* . emp -Exclude "SHQS*","*1*"