在开始运行处,输入powershell ISE回车即可
powershell在windows server 2008上自带,但最好在版本号为6.0.7600上使用,6.0.6001版本的server 2008自带的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
$java_process=get-process java
以上命令会将进程中所有的java进程以System.Diagnostics.Process对象数组的方式返回,那么$java_process这个变量即为一个对象数组
$java_process=get-process java
foreach($p in $java_process){
echo $p.Id
}
以上命令的结果是打印出系统进程中所有java进程的进程id
powershell以"#"号为单行注释,例如:
# 定义i为0
$i = 0
多行注释如下
<#
用于多行注释
#>
$i = 0
# 读取C:\1.txt内容并输出到D:\1.txt,其中|管道符后的%代表遍历读取命令后的数组,$_代表每次遍历的值
Get-Content "C:\1.txt"|%{
echo $_>>D:\1.txt
}
$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
new-item -path C:\ -name backup -type directory #创建目录
new-item -path C:\ -name backup.txt -type file #创建文件
remove-item C:\data_old -force -recurse
#创建一个任务计划管理对象并获取任务计划根目录
$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)
if(get-process java){
#... ...
}
# 拷贝当前目录下所有文件到temp文件夹下,且不拷贝以SHQS开头和文件名中含有1的文件
Copy-Item *.* .\temp -Exclude "SHQS*","*1*"