引用的类可以省略system,看起来简洁些。
- powershell5.1版本启动比较慢,可以用一下代码加速:
$env:PATH = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {
$path = $_.Location
if ($path) {
$name = Split-Path $path -Leaf
Write-Host -ForegroundColor Yellow "`r`nRunning ngen.exe on '$name'"
ngen.exe install $path /nologo
}
}
原理是进程全部修改成完全信任模式,启动时不需要再检查。
当然,完全使用内置模块的话把 -NoProfile 也加上。
-
计算器:
普通基础功能直接写,数学计算需要用到[Math]::方法调用
比如pi、sin这些数学函数。 -
格式化:
转化为字符串可以用tostring()或者out-string,前者是函数,后者是方法。
tostring可以直接指定转换格式:$(get-date).tostring("m/yyyy")
通常用f来指定变量,0表示第一个变量,d是数据类型(day),D就是中文。
"Date: {0:d}" -f (Get-Date) -
日期:
get-date 2023/2/11
时间加减有三种方法
1* (get-date) - (New-TimeSpan -day 20) 当前时间减去20天
2* (Get-Date) $(Get-Date –month 12 -day 31 -year 2006 -hour 23 -minute 30).totaldays
可以不需要后面的time。
后面的时间减去前面的时间,TotalDays是总共相差的日期数,当然我们也可以获取相差的小时数等
字符串转日期用parseexact函数,注意函数中的日期格式是原格式的
$invoice = '01-Jul-16';[datetime]::parseexact($invoice, 'dd-MMM-yy', $null)
格式化可以用 '{0:yyyy-MM-dd}' -f [DateTime]'Jul-16'
,或者直接
[datetime]$Format_date =$invoice
([DateTime]"Jul-16").ToString('yyyy-MM-dd')
网友评论