小结2:
回顾一楼第一题到30楼十九题。补充更正一些东西。
产生01-20递增序列- foreach($a in 101..120){($a|out-string).remove(0,1)}
- 101..120|%{($_|out string).remove(0,1)} #之前没了解对象,错误理解了.remove()
- 1..20|%{"{0:d2}" -f $_}
复制代码 范围操作符..,表示连续数字。如-1..-9生成-1到-9的数组
格式化输出字符串-f,如下- "{0,15}{1,15}{2,15}" -f 1,2,3
- "{0,15}{1,15}{2,15}" -f "hello","boy","!"
复制代码 固定字符长度,不足的补空格。{}大括号中,逗号前的数字表示-f后面所跟参数的下标。
{}大括号中,逗号后的数字表示字符占位长度- ("{0,15}{1,15}{2,15}" -f 1,2,3).length #用这两个可以加强印象
- ("{0,15}{1,15}{2,15}" -f "hello","boy","!").length
复制代码
- "{0:d8}" -f 3 #冒号后的d表示数字的补零,8表示8位
复制代码 冒号后还可以换f表示小数,p表示百分数,x表示16进制...
10秒倒计时- foreach ($i in 10..1){$i;sleep -s 1}
复制代码 Measure-command{foreach ($i in 10..1){$i;sleep -s 1}} #用measure看了下,挺精准。
类似for /f "delims= tokens=5"切割并挑选。- "abc def 123 456 apple 123 45".split(" ")[4]
- ("abc-123-###-电源盒子-powershell" -split "-")[2,4]
复制代码 给小诗加汉字行号- foreach($n in 0..7){"一二三四五六七八"[$n]+"#"+(gc a.txt)[$n]}
复制代码 建立1-10文件夹- foreach($i in 1..10){md $i}
复制代码
复制代码 关于这种格式用法[system.io.path]::getfilename()
::静态成员运算符,[]方括号中是类名。
类名::属性名 ,类名::方法名()
.成员运算符
$对象.属性 ,$对象.方法()
千字文- ((gc a.txt) -replace (" ","")|measure-object -char).characters
复制代码 measure-command验证效率略高于原答案- ((gc a.txt) -split(" ")|?{$_ -ne ""})[-1..-250] #逆序输出并去空行
复制代码
|