[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
其实powershell是非常混乱和繁杂的
你得区分一大堆东西,还有各种各样的细节
所有输出是对象只是片面的方便,之外就是非常麻烦,完全没有字符串无脑匹配简单,还增加了学习者的记忆负担
而且又没有调试型输出,很容易被显示的输出误导和坑的,尤其是那些自己不熟悉或复杂的对象

TOP

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

TOP

返回列表