powershell管道输出问号
cmd是dos的主界面,那时可没图形界面,也没鼠标,和计算机的交互靠着键盘输入->显示屏输出的轮转,敲进去的是命令,输出的是串串字符:
显示当前目录内文件和子目录的命令dir
编辑文本文件的编辑器edit
输出文本文件内容type
运行程序start
......
初始需求基本的功能就可以了,命令的字符数简而直观,过渡到powershell,不适应就是命令字符数的增加,比如get*系列,进一步就是功能的扩展带及语法的丰富,需要切合实际的应用慢慢上手的,也积累了一些不甚了了的发现:
1.今日突然发现powershell界面,命令输出要是带有中文,比如ping使用管道输出,中文就成问号了,cmd界面不会这样,网上一查,有说在语言勾上”utf-8提供全球语言支持“,这个方法因之前试过会造成金蝶乱码,就没检测;有说使用chcp 936的,试过无效;再有就是编辑启动配置文件:
notepad $profile
添加一行[System.Console]::OutputEncoding=[System.Console]::InputEncoding=[System.Text.Encoding]::UTF8
试过真行,就是中文输出编英文了,好过问号,可问题不限于此,直接ping输出有效,可把ping管道输出封装到start-job,怎么回事呢,又是问号...



是的,就解释为cmd中悠久而广泛的findstr在powershell不支持了,其自带where语句,哈哈,正常显示中文了:

加入start-job是为了隔一定时间获取输出,这个例子演示了ping对网关的连接稳定测定


    随笔内容简单,在于经历。
Just record for aimed crowd.
                    
                
                
            
        
浙公网安备 33010602011771号