回复 4# Nsqs - ###
- 像 if 这个词,你得知道它啥情况被当成cmdlet,啥情况被当成function,啥情况被当成可执行程序,啥情况被当成条件语句
- (if (0 -eq 0){})
- 跟
- if (0 -eq 0){}
- 可是不同的东西
-
- ###
- cmdlet的参数,你得知道啥情况是字符串,啥情况是表达试,啥情况是语句
- gc -TotalCount 2*128 f.txt
- 跟
- gc -TotalCount (2*128) f.txt
- 可是不同的东西
-
- ###
- cmdlet一堆选项,你得知道那些选项有啥用,哪些选项可以同时使用的,哪些不能同时使用,不同选项之间的差异
-
- ###
- 你得知道哪些输出是过管道的,哪些是否支持管道,还有过管道跟不过管道的差异
- echo "aaa"|gm
- 跟
- [console]::WriteLine("aaa")|gm
- 是不同的东西
-
- gm -i [int]
- 跟
- [int]|gm
- 也是不同的东西
-
- gm -i {echo "aaa"}
- 跟
- {echo "aaa"}|gm
- 也是不同的东西
-
- ###
- 你得知道那些cmdlet是否是匹配模式,是否支持集合或数组
-
- ###
- 代码
- "aaa`r`nbbb`r`nccc" -replace "`n",""
- 执行后显示"ccc"
- 由于"`r"显示后回到行首了,实际的结果跟输出显示的不是一个东西,
- 因此某些情况下可能无法通过输出显示来得知执行结果
-
- ###
- powershell的转义符是反引号"`",而常规转义符是反斜杠"\"
- 因此你得知道啥时候使用powershell的转义符,啥时候使用常规的转义符,尤其是调用外部程序的时候
- gci *.txt | rni -NewName { $_.Name -replace '\[','.log' } #替换部分被解析为正则,使用正则转义符
复制代码
|